You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按ID展平分组后的Pandas DataFrame列?

Pandas实现ID分组展平为多列

实现步骤:

  1. 给每个ID分组内的行生成序号标签,用于作为新列名的后缀
  2. 通过pivot方法将VALUE列按序号标签转成多列
  3. 清理列名格式,还原ID为普通列

完整代码示例:

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'ID': [1, 1, 2, 2, 3, 3],
    'VALUE': [11, 12, 21, 22, 31, 32]
})

# 生成组内序号标签,格式为v1、v2...
df['col_tag'] = 'v' + (df.groupby('ID').cumcount() + 1).astype(str)

# 执行展平操作
flattened_df = df.pivot(index='ID', columns='col_tag', values='VALUE').reset_index()

# 移除列索引的名称,避免多余标识
flattened_df.columns.name = None

print(flattened_df)

代码说明:

  • df.groupby('ID').cumcount():为每个ID分组内的行生成从0开始的连续计数,加1后得到1、2...的序号,拼接前缀v后作为新列名
  • pivot(index='ID', columns='col_tag', values='VALUE'):将每个ID对应的VALUE值,按col_tag指定的列名展开成多列
  • reset_index():把ID从索引列还原为普通数据列

最终输出:

ID  v1  v2
0   1  11  12
1   2  21  22
2   3  31  32

内容的提问来源于stack exchange,提问作者Fredrik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 05:25:42