首页 > 解决方案 > 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。我怎样才能解决这个问题?

标签: pythonpandas

解决方案


在没有 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

推荐阅读