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

使用Python Pandas处理含重复值的数据透视表问题

Pandas 实现ID分组、LOCATION转列的表格转换

直接用pivot()方法就能快速解决这个需求,以下是完整实现代码:

import pandas as pd
import numpy as np

start_table = pd.DataFrame(
    {
        'ID' : [1,1,1,2,2,3],
        'LOCATION' : ['US', 'CANADA', 'MEXICO', 'US', 'MEXICO', 'US'],
        'STATUS' : ['IN PROGRESS', 'COMPLETE']*3
    }
)

# 核心透视转换
end_table = start_table.pivot(
    index='ID',
    columns='LOCATION',
    values='STATUS'
).reset_index().rename_axis(None, axis=1)

# 替换空值为None以匹配目标格式
end_table = end_table.replace({np.nan: None})

# 输出结果
print(end_table)

关键步骤说明

  • pivot():这是实现行转列的核心方法,参数分别指定分组依据(index='ID')、新列的来源(columns='LOCATION')、单元格填充值(values='STATUS')
  • reset_index():把ID从索引列转换为普通数据列,符合目标表的结构
  • rename_axis(None, axis=1):移除列索引的名称(原名称为LOCATION),让输出格式和目标表完全一致
  • 空值替换:pivot默认用NaN表示缺失值,通过replace()转成None,匹配目标表的空值格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 08:17:04