熊猫数据框问题:“ reset_index”不会删除层次结构索引

时间:2018-10-12 07:14:43

标签: python pandas

我正在尝试展平Pandas Dataframe MultiIndex,以便只有一个级别的索引。基于任意数量的SE帖子的常见解决方案是使用df.reset_index命令,但这只是不能解决问题。

我从Xarray DataArray开始,将其转换为数据框。原始数据框看起来像这样。

                results
      simdata   a_ss_yr attr    attr1   attr2 attr3
run    year                     
 0      0        0      0      0       0       0
        1         1      6     2       0       4
        2         2      4     2       2       0
        3         3      1     0       0       1
        4         4      2     0       2       0

要弄平我使用的索引

df.reset_index(drop=True)

这只能做到这一点:

         run    year  results
simdata               a_ss_yr attr  attr1   attr2
0         0     0      0         0    0    0
1         0     1      1         6    2    0
2         0     2      2         4    2    2
3         0     3      3         1    0    0
4         0     4      4         2    0    2

我尝试不止一次地执行df.reset_index()选项,但这仍然不能使索引变平,我只想将其作为单个级别的索引。

更具体地说,我需要“运行”和“年”变量进入第0级列名称集,并且需要完全删除“结果”标题。

我一直在阅读Pandas文档,但似乎并没有真正描述对索引进行这种手术。有谁知道如何做到这一点?

1 个答案:

答案 0 :(得分:4)

使用第一个droplevel删除第一个级别的MultiIndex,然后删除reset_index

df.columns = df.columns.droplevel(0)
df = df.reset_index()