使用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
相关产品推荐
相关产品推荐

