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

如何将含id、text、expand列的DataFrame转换为带编号列的宽格式数据?

解决方案

你可以通过分组添加序号 + 透视表转换实现这个需求,用Pandas的具体代码如下:

实现步骤

  1. 为每个(id, expand)组合生成组内序号,用来区分同组内的多条记录(比如pre组的第1、2条)
  2. 将expand字段与序号拼接成新列名(如pre1、post2)
  3. 透视转换为宽格式,最后重置索引让id回到列中

完整代码示例

import pandas as pd

# 构造原始DataFrame
df = pd.DataFrame({
    'id': [1,1,2,1,2,2],
    'text': ['text1','text2','text3','text4','text5','text6'],
    'expand': ['pre','pre','pre','post','post','post']
})

# 1. 添加组内序号
df['seq'] = df.groupby(['id', 'expand']).cumcount() + 1

# 2. 拼接新列名
df['col_name'] = df['expand'] + df['seq'].astype(str)

# 3. 透视转换为宽格式
wide_df = df.pivot(index='id', columns='col_name', values='text').reset_index()

# 4. 整理列顺序(可选,匹配目标格式的列顺序)
wide_df = wide_df[['id', 'pre1', 'pre2', 'post1', 'post2']]

# 可选:将空值NaN替换为空字符串
wide_df = wide_df.fillna('')

print(wide_df)

输出结果

id   pre1   pre2  post1  post2
0   1  text1  text2  text4       
1   2  text3         text5  text6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:57:23