我有一个看起来像这样的数据文件-
[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这样的答案,并尝试了这些方法,但是这些方法无济于事。
对此将提供任何帮助!非常感谢!
答案 0 :(得分:1)
我和你有同样的问题。我观察到,如果我在OpenOffice程序中以.csv格式更改数据,则会发生错误。取而代之的是,我从Internet下载了数据,然后在简单的Notepad ++编辑器中编辑了数据。然后它正常工作。我知道也许这种解决方案对您没有帮助,但是也许您应该更改支持.csv文件的文本编辑器或程序。