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

如何使用Pandas实现DataFrame按ID分组过滤、转置后合并为统一数据集

实现代码

你可以直接用groupby.apply()批量处理所有id分组后自动拼接结果,无需手动写循环:

import pandas as pd

# 请替换为你自己的原始dataframe变量
result = df.groupby('id', group_keys=False).apply(
    lambda group: group[["text_field", "text_value"]]
                    .set_index("text_field")
                    .T
).reset_index(drop=True)

逻辑说明

  • groupby('id')自动按id字段拆分所有独立分组
  • group_keys=False避免生成多余的id索引层级
  • lambda函数内的逻辑就是你之前单id的处理逻辑,会自动应用到每个分组
  • 末尾reset_index(drop=True)可以清除默认生成的text_value行索引,如果你需要保留该行标识可以删除这行代码

重复字段兼容处理

如果分组内存在重复的text_field(比如示例中id=2的两个Position值),可以先给重复字段加序号后缀再处理,代码如下:

def process_single_group(group):
    # 给同分组内的重复text_field加序号后缀,避免转置时字段冲突
    group['text_field'] = group['text_field'] + '_' + group.groupby('text_field').cumcount().astype(str)
    return group[["text_field", "text_value"]].set_index("text_field").T

result = df.groupby('id', group_keys=False).apply(process_single_group).reset_index(drop=True)

运行后id=2的分组会自动生成Position_0、Position_1两列,值分别对应City、Countryside,所有分组的转置结果会自动合并,缺失字段填充为NaN值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 22:06:03