如何使用pandas pivot转换Primary ID列,将匹配Secondary ID展示在相邻列
实现方法
你需要先给每个Primary ID分组后的Secondary ID生成对应序号,再用序号作为pivot的列维度即可实现需求,完整代码如下:
import pandas as pd # 假设你的原始数据已经存入df,列名为Primary ID、Secondary ID # 第一步:为每个Primary ID下的Secondary ID生成1、2、3的顺序编号 df['seq'] = df.groupby('Primary ID').cumcount() + 1 # 第二步:执行pivot转换 res = df.pivot( index='Primary ID', columns='seq', values='Secondary ID' ) # 第三步:重命名列、填充空值为"-"、重置索引 res.columns = [f'Secondary {i}' for i in res.columns] res = res.fillna('-').reset_index() # 输出res即可得到目标格式结果 print(res)
如果需要调整Secondary ID的排列顺序,可以在生成seq列之前先做排序,比如按Secondary ID从小到大排列就添加一行:
df = df.sort_values(['Primary ID', 'Secondary ID'])
内容的提问来源于stack exchange,提问作者terribleatthis
相关产品推荐
相关产品推荐

