Python pandas使用pivot_table生成透视表如何调整列顺序
调整pandas生成透视表列顺序的实现方案
pandas的pivot_table方法默认会对传入的数值列按字母顺序自动排序,因此你即使按照期望顺序填写values参数,输出的列顺序也会被重排,你可以用以下两种方法调整为想要的顺序:
- 方法1:生成透视表后直接按目标顺序选取列(最简便)
# 先生成透视表 pivot_df = pd.pivot_table(df.loc[filt], index=['region','brand'], values=['salesrevenue','contributionmargin','variablecost']) # 按期望顺序重新选取列 pivot_df = pivot_df[['salesrevenue', 'contributionmargin', 'variablecost']]
该方法适配所有pandas版本,无需修改透视表生成逻辑,调整灵活度高。
- 方法2:使用
reindex方法指定列顺序
如果需要处理可能的列缺失场景,可以用reindex实现,还支持指定缺失值的填充规则:
# 定义目标列顺序 target_cols = ['salesrevenue', 'contributionmargin', 'variablecost'] # 重排列,缺失列会自动填充为NaN,也可以加fill_value参数指定填充值 pivot_df = pivot_df.reindex(columns=target_cols)
内容的提问来源于stack exchange,提问作者Hendrik
相关产品推荐
相关产品推荐

