Pandas:将多索引列标题转换为普通列标题?

时间:2014-07-30 13:37:53

标签: python pandas

我的数据框看起来像这样,列标题是MultiIndex,(True,False是布尔类型)。

    date         a            value
id                   False           True
0    2013-11-26  0   346.749819      0.000000
1    2013-11-27  1   1786.449591     21442.388942
2    2013-11-28  1   677837.782372   92998.909207
3    2013-11-29  0   731443.020535   322093.419644
4    2013-11-30  1   18082.124124    11637.523334

我怎样才能轻松实现这一点:

id   date        a   value: False    value: True
0    2013-11-26  0   346.749819      0.000000
1    2013-11-27  1   1786.449591     21442.388942
2    2013-11-28  1   677837.782372   92998.909207
3    2013-11-29  0   731443.020535   322093.419644
4    2013-11-30  1   18082.124124    11637.523334

列名称并不重要,因为我可以稍后使用rename修改它们。

2 个答案:

答案 0 :(得分:2)

如果名称不重要,您可以执行此操作,这将重置行索引,并将MultiIndex列替换为每个级别的元组。

df = df.reset_index()
df.columns = list(df.columns)

答案 1 :(得分:0)

这是一种在数据框中展平这些多索引列的更加pythonic的方法:

df.columns = df.columns.map(' : '.join)