我有这样的数据文件 -
[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并尝试了这些方法,但这些都没有帮助。
任何有关这方面的帮助将不胜感激!非常感谢!
我遇到了和你一样的问题。我观察到如果我在OpenOffice程序中更改.csv格式的数据,则会发生错误。而不是我从互联网上下载了数据,我在简单的Notepad ++编辑器中编辑了数据。然后它正常工作。我知道也许这个解决方案在你的情况下没有帮助,但也许你应该改变支持.csv文件的文本编辑器或程序。