如何删除pandas.dataframe中的丑陋行

时间:2015-08-07 13:45:42

标签: python pandas

所以我从2个不同的文件填充数据帧。虽然这两个文件应该具有相同的结构(值应该是不同的思想),但结果数据框看起来不同。所以在打印时我会得到:

                a              b              c        d
0        70402.14   70370.602112       0.533332       98
1        31362.21   31085.682726       1.912552      301       
...           ...            ...            ...      ...
753919   64527.16   64510.008206       0.255541       71
753920   58077.61   58030.943621       0.835758      152

                a              b              c        d
index
0       118535.32  118480.657338       0.280282       47
1        49536.10   49372.999416       0.429902       86
...           ...            ...            ...      ...
753970   52112.95   52104.717927       0.356051      116
753971   37044.40   36915.264944       0.597472      165

所以在第二个数据框中有"索引"对我没有任何意义的行,它会导致以下代码出现问题。我没有编写代码来将文件填充到数据框中,也没有创建这些文件。所以我很感兴趣检查是否存在这样的行以及我如何能够将其删除。有没有人对此有所了解?

2 个答案:

答案 0 :(得分:2)

第二个数据帧的索引级别为" index"。 您可以使用

删除名称
df.index.name = None

例如,

In [126]: df = pd.DataFrame(np.arange(15).reshape(5,3))    

In [128]: df.index.name = 'index'

In [129]: df
Out[129]: 
        0   1   2
index            
0       0   1   2
1       3   4   5
2       6   7   8
3       9  10  11
4      12  13  14

In [130]: df.index.name = None

In [131]: df
Out[131]: 
    0   1   2
0   0   1   2
1   3   4   5
2   6   7   8
3   9  10  11
4  12  13  14

数据框可能已经选择了名称" index"如果您使用reset_indexset_index,请执行以下操作:

In [138]: df.reset_index()
Out[138]: 
   index   0   1   2
0      0   0   1   2
1      1   3   4   5
2      2   6   7   8
3      3   9  10  11
4      4  12  13  14

In [140]: df.reset_index().set_index('index')
Out[140]: 
        0   1   2
index            
0       0   1   2
1       3   4   5
2       6   7   8
3       9  10  11
4      12  13  14

答案 1 :(得分:0)

索引只是第一列 - 它默认为行编号,但您可以通过多种方式对其进行更改(例如,使用其中一列填充值)