尽管我在数据框中有该列,但在转换数据类型时仍出现KeyError

时间:2018-07-16 14:40:39

标签: python python-3.x keyerror

我有一个包含多个列的数据框,如下所示:

Flash_Bookings = pd.read_excel(Bookings.xlsx',sheetname='FLASH Bookings' 
,index=False, encoding='utf-8')

然后我将它们转换为字符串,整数或日期时间格式,具体取决于它们是什么:

Flash_Bookings['BookingDate'] = pd.to_datetime(Flash_Bookings['BookingDate'], 
format='%Y-%m-%d')
Flash_Bookings['ContractNo'] = Flash_Bookings['ContractNo'].astype(str)
Flash_Bookings['Rep'] = Flash_Bookings['Rep'].astype(str)

它们都工作正常(我在那里也有其他专栏,除了一个“ Rep”外,我在这里没有包括其他所有内容都很好,所以我得到的错误消息是:

KeyError: 'Rep'

我什至跑了

Flash_Bookings.dtypes

并获得:

BookingDate           datetime64[ns]
ContractNo                    object
Rep                           object

因此,对于ContractNo来说,它工作得非常好,ContractNo是一个字符串,就像Rep。

关于Rep为什么不起作用以及如何解决它的任何想法?

1 个答案:

答案 0 :(得分:1)

标题中可能有多余的空间

尝试:

Flash_Bookings.columns = Flash_Bookings.columns.str.strip()

然后打电话

Flash_Bookings['Rep'] = Flash_Bookings['Rep'].astype(str)