python-3.x - 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 数据框中的列时出现关键错误并尝试了这些方法,但这些方法没有帮助。
对此的任何帮助将不胜感激!非常感谢!
解决方案
我和你有同样的问题。我观察到,如果我在 OpenOffice 程序中更改 .csv 格式的数据,则会发生错误。取而代之的是,我从 Internet 下载了数据,并在简单的 Notepad++ 编辑器中编辑了数据。然后就可以正常工作了。我知道这个解决方案可能对您没有帮助,但也许您应该更改支持 .csv 文件的文本编辑器或程序。
推荐阅读
- javascript - Delaunay三角剖分在p5中半工作
- sql - 如何查询 jsonb 数组以查找它是否包含查询列表中的值?
- html - 处理使用 Angular 在 div 中设置为背景图像的图像的 403 错误
- android-studio - 如何在不打开 Android Studio 的情况下在 Android Studio 中运行 Android Emulator?
- r - 如何在 R 中绘制具有 200 多个不同颜色的列的条形图(基础 R)?
- javascript - 如何在动态呈现的表单上禁用登录按钮
- python - numpy.f2py.compile() 函数是否有更多可用文档?
- python - 元组内具有元组的整数之和
- javascript - 使用 FusionCharts 绘制实时数据
- java - 在java的构造函数中创建一个ArrayList