Pandas:组合多索引数据帧的标题行

Posted

技术标签:

【中文标题】Pandas:组合多索引数据帧的标题行【英文标题】:Pandas: combining header rows of a multiIndex DataFrame 【发布时间】:2018-05-18 03:24:48 【问题描述】:

假设我有一个如下的 DataFrame:

first   bar       baz       foo
second  one  two  one  two  one  two three
A       1    2    3    4    5    6   7
B       8    9    10   11   12   13  14

我想像这样创建一个新的 DataFrame:

        barone  bartwo  bazone baztwo  fooone footwo foothree
A       1       2       3      4       5      6      7
B       8       9       10     11      12     13     14

可能的代码是什么?

【问题讨论】:

【参考方案1】:

1。使用 Python 3.6+ 更新使用 f-string formatting 和列表理解:

df.columns = [f'ij' for i, j in df.columns]

2。使用mapjoin

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

3。如果您的列具有数字数据类型,请使用mapformat

df.columns = df.columns.map('0[0]0[1]'.format) 

输出:

   barone  bartwo  bazone  baztwo  fooone  footwo  foothree
A       1       2       3       4       5       6         7
B       8       9      10      11      12      13        14

【讨论】:

以上是关于Pandas:组合多索引数据帧的标题行的主要内容,如果未能解决你的问题,请参考以下文章

无法正确组合多索引列(3 级)

Pandas:根据条件为多索引数据帧的子集设置值的正确方法

将多索引数据帧的索引值提取为python中的简单列表

删除每个索引的多索引熊猫数据帧的最低五个值

使用多索引列连接两个 pandas 数据框

如何获取多索引数据帧的前两个索引的字典