Python KeyError:'列名'

问题描述 投票:0回答:1

我有这样的数据文件 -

[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'和这个 - Key error when selecting columns in pandas dataframe after read_csv并尝试了这些方法,但这些都没有帮助。

任何有关这方面的帮助将不胜感激!非常感谢!

python-3.x pandas numpy
1个回答
1
投票

我遇到了和你一样的问题。我观察到如果我在OpenOffice程序中更改.csv格式的数据,则会发生错误。而不是我从互联网上下载了数据,我在简单的Notepad ++编辑器中编辑了数据。然后它正常工作。我知道也许这个解决方案在你的情况下没有帮助,但也许你应该改变支持.csv文件的文本编辑器或程序。

© www.soinside.com 2019 - 2024. All rights reserved.