【问题标题】:Adding a multi-level column to a single-level pandas dataframe向单级熊猫数据框添加多级列
【发布时间】:2021-06-27 00:15:54
【问题描述】:

我有一个单级熊猫数据框:

df = pd.DataFrame({"x":[0,0,0],"y":[0,0,0]})

看起来像这样:

    x   y
0   0   0
1   0   0
2   0   0

现在我想向这个数据框添加一个多级列“z”(有两个子列“z1 和“z2”),所以它看起来像这样:

    x   y   z
            z1  z2
0   0   0   1   2
1   0   0   1   2
2   0   0   1   2

【问题讨论】:

  • 如果您只添加列df["z1"] = 1; df["z2"] = 2,您的生活可能会更轻松
  • @anon01 实际上,我的数据框中需要多个多级列,每个列都有多个子列,并且我经常需要操作给定父列的所有子列。如果我不使用多级列,那么每次我需要做一个列表理解来选择所有以给定字符串开头的列(例如所有以“z”开头的列,即“z1”和“z2 "),所以会有点乱。因此,如果有一种简单的方法可以将多级列添加到单级数据框,我猜这会让我的工作更轻松。

标签: python pandas dataframe multiple-columns multi-index


【解决方案1】:

首先我们将现有列设为多索引:

df.columns = pd.MultiIndex.from_arrays([df.columns,['']*len(df.columns)])

然后添加由元组索引的新元组

df[('z','z1')] = [1,1,1]
df[('z','z2')] = [2,2,2]
df

得到

    x   y   z
            z1  z2
0   0   0   1   2
1   0   0   1   2
2   0   0   1   2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 2022-01-13
    • 2018-04-25
    • 2021-06-11
    • 2019-08-01
    • 1970-01-01
    相关资源
    最近更新 更多