无法识别DataFrame中的列。关键字错误:“日期”

时间:2019-08-16 17:37:13

标签: python python-3.x pandas dataframe

我正处于进行“机器学习”的初期阶段。

我正在尝试创建一个新的数据框,但其中一列似乎无法识别。

我已经加载了2列的Excel文件(已删除索引)。很好。

代码:

df = pd.read_excel('scores.xlsx',index=False)

df=df.rename(columns=dict(zip(df.columns,['Date','Amount'])))

df.index=df['Date']

df=df[['Amount']]

#creating dataframe
data = df.sort_index(ascending=True, axis=0)
new_data = pd.DataFrame(index=range(0,len(df)),columns=['Date','Amount'])

for i in range(0,len(data)):
   new_data['Date'][i] = data['Date'][i]
   new_data['Amount'][i] = data['Amount'][i]

错误:

KeyError: 'Date'

不太确定这是什么问题。

任何帮助表示赞赏

3 个答案:

答案 0 :(得分:3)

我认为在第4行中,您将数据框缩小为仅一列“金额”

答案 1 :(得分:2)

要添加到@Grzegorz Skibinski的答案中,问题出在第4行之后,不再有'Date'列。 Date列已分配给索引并被删除,并且索引的名称为“ Date”,但是不能使用'Date'作为获取索引的键-您必须使用data.index[i]data['Date'][i]

答案 2 :(得分:0)

看来Date列的格式有误。

要检查列名是否没有错误,可以打印列名:

import pandas as pd

# create data
data_dict = {}
data_dict['Fruit '] = ['Apple', 'Orange']
data_dict['Price'] = [1.5, 3.24]

# create dataframe from dict
df = pd.DataFrame.from_dict(data_dict)

# Print columns names
print(df.columns.values)

# Print "Fruit " column
print(df['Fruit '])

此代码输出:

['Fruit ' 'Price']
0     Apple
1    Orange
Name: Fruit , dtype: object

我们清楚地看到“ Fruit”列为尾随空格。这是一个容易犯的错误,尤其是在使用excel时。 如果您尝试调用“水果”而不是“水果”,则会出现以下错误:

KeyError: 'Fruit'