Pandas透视表格报错解决:无需聚合函数实现指定格式转换
解决pivot_table报错"Grouper and axis must be same length"的方案
问题说明
需要将数据透视为指定格式:
Description From To 2021-11-01 A A X VALUE COLUMN B B P VALUE COLUMN C D T VALUE COLUMN
执行以下代码时出现报错:
final_data.pivot_table(index=[['Description', 'From', 'To']], columns='Date', values=['Value'], aggfunc=len).reset_index()
报错信息:
Grouper and axis must be same length
需求:无需使用聚合函数,实现正确的数据透视。
解决方案
错误原因
index参数传入了嵌套列表[['Description', 'From', 'To']],导致分组器长度与轴长度不匹配,触发报错。
方案1:使用pivot方法(推荐)
如果你的(Description, From, To, Date)组合无重复值,直接用pivot即可,无需聚合函数:
final_data.pivot(index=['Description', 'From', 'To'], columns='Date', values='Value').reset_index()
该方法专门用于无重复组合的行列重排,完全匹配你的需求。
方案2:修正pivot_table写法
若必须使用pivot_table,需修正index的传入格式,同时指定无意义的聚合方式(如取第一个值,前提是无重复组合):
final_data.pivot_table(index=['Description', 'From', 'To'], columns='Date', values='Value', aggfunc='first').reset_index()
内容的提问来源于stack exchange,提问作者LUCAS XX
相关产品推荐
相关产品推荐

