首页 > 解决方案 > Python KeyError:'列名'

问题描述

我有看起来像这样的数据文件 -

[Table 1]
Terms         Author        Frequency
Hepatitis     Christopher   2
Acid          Subrata       1
Acid          Kal           3
Kinase        Pramod        31
Kinase        Steve         5
Kinase        Sharon        10
Acid          Rob           5
Acid          Christopher   2
Hepatitis     Sharon        3

我想转换成这样的频率矩阵 -

Terms       Christopher     Subrata   Kal    Pramod     Steve    Sharon    Rob      
Hepatitis       2              0       0       0          0         3        0
Acid            2              0       3       0          0         0        5
Kinase          0              0       0       31         5         10       0

现在我已经想出了如何做到这一点,我正在使用这段代码 -

 a = pd.read_csv("C:\\Users\\robert\\Desktop\\Python Project\\Publications Data\\New Merged Title Terms Corrected\\Python generated file\\Terms_Frequency_File.csv")
 b = a.groupby(['Terms']).apply(lambda x:x.set_index(['Terms','Author']).unstack()['Frequency'])   

直到昨天,这一切都很好,但是今天我再次生成了 [表 1] 数据,因为我不得不向数据中添加一个额外的作者并尝试再次像 [表 2] 中那样制作频率矩阵,但这给了我这个愚蠢的错误-

KeyError: 'Terms'

我很确定这与数据框中的索引列或索引列中的一些空白问题(在本例中为“术语”列)有关。我试图像这样阅读几个答案 - KeyError: 'column_name'和这个 -在 read_csv 之后选择 pandas 数据框中的列时出现关键错误并尝试了这些方法,但这些方法没有帮助。

对此的任何帮助将不胜感激!非常感谢!

标签: python-3.xpandasnumpy

解决方案


我和你有同样的问题。我观察到,如果我在 OpenOffice 程序中更改 .csv 格式的数据,则会发生错误。取而代之的是,我从 Internet 下载了数据,并在简单的 Notepad++ 编辑器中编辑了数据。然后就可以正常工作了。我知道这个解决方案可能对您没有帮助,但也许您应该更改支持 .csv 文件的文本编辑器或程序。


推荐阅读