Pandas的Keyerror 0.13.1和python 2.7.6

时间:2014-08-20 12:26:50

标签: python python-2.7 pandas

我有一个csv文件,其中一列是“locations”。当我尝试下面的代码时,我收到了关键错误“位置”。该代码适用于早期版本的pandas。 “places_count = list(data1 ['locations'])”导致错误。有谁知道这个错误的原因。

data = pd.read_csv('data//datafile.csv')
data1 = data.groupby('locations').count()
places = list(data1.index)
places_count = list(data1['locations'])

datafile.csv的内容:

+++++++++++++++++++++++
Name | locations | states
A    | Hyderabad | Andhra Pradesh
B    | Hyderabad | Andhra Pradesh
C    | Agartala  | Tripura
D    | Ahmedabad | Gujarat
+++++++++++++++++++++++

2 个答案:

答案 0 :(得分:3)

正如@FooBar所说,你的列名可能有空格。您可以使用data = pd.read_csv('tmpdat.csv', skipinitialspace=True)在导入中修复该问题。

但是,您的代码仍然无法运行,因为data1没有locations列,因为您已经按locations分组了。我不确定您想要做什么,但是,如果您尝试计算每个位置的观察次数,我建议data.locations.value_counts()而不是{{1} }。

答案 1 :(得分:2)

我在Pandas 0.14中尝试了通过read_clipboard()读取的代码并得到了相同的错误。 但是,经过进一步检查,我得到的列名有空格。以下应用程序正常运行:

data = data.rename(columns=lambda x: x.strip())
data.groupby('locations')
Out[408]: <pandas.core.groupby.DataFrameGroupBy object at 0x0000000010CB5B70>