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

无需聚合的对象列Pivot实现:DataFrame分类值转置为列的需求咨询

实现方法

核心思路是先给同一ObjColA分组下的每条记录生成组内唯一的行序号,保证(行序号, ObjColA取值)组合唯一后再做透视,不需要额外聚合规则。

完整代码示例

import pandas as pd

# 构造示例DataFrame(实际使用时替换为自己的DataFrame即可)
df = pd.DataFrame({
    'ObjColA': ['2021-10-13', '2021-10-13', '2021-10-13', '2021-10-14', '2021-10-14', '2021-10-14', '2021-10-14'],
    'ObjColB': ['ABC', 'DEF', 'XYZ', 'ABC', 'PQR', 'DEF', 'XYZ']
})

# 步骤1:为每个ObjColA分组内的记录生成组内行序号
df['group_inner_id'] = df.groupby('ObjColA').cumcount()

# 步骤2:直接透视得到目标结构
result = df.pivot(index='group_inner_id', columns='ObjColA', values='ObjColB')

# 可选操作:去掉多余的行索引,空值替换为空字符串(更贴合预期输出格式)
result = result.reset_index(drop=True).fillna('')

输出结果验证

执行后result的结构如下:

2021-10-132021-10-14
ABCABC
DEFPQR
XYZDEF
XYZ

原理解释

pivot方法本身要求每个索引+列名的组合唯一,我们通过groupby.cumcount()给同日期下的每个值分配了唯一的组内序号作为行索引,就满足了唯一性要求,不需要设置聚合规则也能完成转置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:39:03