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

基于id在Pandas中从列值生成新列

解决方法

你可以通过分组编号+透视的方式实现需求,具体步骤如下:

1. 构造示例数据

先还原你的输入DataFrame:

import pandas as pd

df = pd.DataFrame({
    'id': [1, 1, 2, 3, 3, 3],
    'Label': ['A', 'B', 'C', 'D', 'E', 'F']
})

2. 为每个ID下的Label添加序号

用groupby.cumcount()给同一ID内的Label从1开始编号:

df['seq'] = df.groupby('id')['Label'].cumcount() + 1

3. 透视生成新列

以id为索引,seq为列名,Label为值做透视,之后重置索引并重命名列:

# 透视
pivot_df = df.pivot(index='id', columns='seq', values='Label').reset_index()
# 重命名列
pivot_df.columns = ['id'] + [f'Label_{col}' for col in pivot_df.columns[1:]]
# 空值填充为空字符串(匹配你的示例输出)
result = pivot_df.fillna('')

最终输出

运行后result的结果就是你要的格式:

idLabel_1Label_2Label_3
1AB
2C
3DEF

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 01:03:14