python - Pandas read_table 使用 MultiIndex 跳过行
问题描述
我正在尝试使用 pandas read_table 读取 tsv 文件,但由于某种原因,第一行已从文件中删除。
test.pln(文件在这里):
Class index 0 0 0 1 1 1 2 2 2 3 3 3
fall spring summer fall spring summer fall spring summer fall spring summer
0
1
2
3
4
5 COMP 140
6 COMP 182
7 MATH 331
然后,运行命令:
pd.read_table("test.pln", header=[0,1],index_col=0)
我得到这个结果:
Class index 0 1 2 \
fall spring summer fall spring summer fall spring summer
0
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 COMP 140 NaN NaN NaN NaN NaN NaN NaN NaN
6 NaN COMP 182 NaN NaN NaN NaN NaN NaN NaN
7 MATH 331 NaN NaN NaN NaN NaN NaN NaN NaN
Class index 3
fall spring summer
0
1 NaN NaN NaN
2 NaN NaN NaN
3 NaN NaN NaN
4 NaN NaN NaN
5 NaN NaN NaN
6 NaN NaN NaN
7 NaN NaN NaN
如您所见,有一个空行。当我尝试从第 0 行访问值时,我得到一个 KeyError。但是,这些值存在于文件中,因此该行应充满 NaN。我怎样才能解决这个问题?
解决方案
在没有 index_col 的情况下试试这个,我们使用一个元组删除第一个索引列drop
:
pd.read_csv('Desktop/test.pln',sep='\t',header=[0,1]).drop(('Class index','Unnamed: 0_level_1'), axis=1)
输出:
0 1 2 3
fall spring summer fall spring summer fall spring summer fall spring summer
0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 COMP 140 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 NaN COMP 182 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 MATH 331 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
推荐阅读
- python - 麻烦在ubuntu18.04上安装mysqlclient
- mongodb - Node、Express、MongoDB:使用对象数组创建模式?
- python - 在另一列中的两个条目之间查找列的最小值
- vue.js - Vue.js:绑定选择框,但不想 ajax 所有选项
- node.js - 如何从“分析”区域获取数据?
- angular - 在 Angular 中放置独立函数的位置
- reactjs - 如何从 Intellij 运行/执行/调试 react/redux 应用程序
- git - Intellij Github Integration 给了我一个不同的帐户
- php - Laravel 6 - MariaDB 10.1:Illuminate\Database\QueryException:SQLSTATE[HY000] 迁移错误
- python - matplotlib 阻止我的其余代码运行