繁体   English   中英

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

[英]Pandas: combining header rows of a multiIndex DataFrame

假设我有一个 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. 使用 Python 3.6+ 更新使用带有列表理解 的 f 字符串格式

df.columns = [f'{i}{j}' 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

我正在尝试做同样的事情,但使用更大的数据集(df = 2043 X 236)。 需要合并三个列标题(许多为空白,但不是全部)。 我对 i 和 j 能够编辑的内容感到困惑,并且按原样使用代码我收到以下错误:

Traceback (most recent call last):
  File "PullDataUpdate.py", line 14, in <module>
    df.columns = [f'{i}{j}' for i, j in df.columns]
  File "PullDataUpdate.py", line 14, in <listcomp>
    df.columns = [f'{i}{j}' for i, j in df.columns]
ValueError: too many values to unpack (expected 2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM