我正处于进行“机器学习”的初期阶段。
我正在尝试创建一个新的数据框,但其中一列似乎无法识别。
我已经加载了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'
不太确定这是什么问题。
任何帮助表示赞赏
答案 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'