如何在PANDAS中修改默认列顺序,将尺寸列调整为S、M、L、XL顺序?
解决方法
你可以选择以下两种方案实现需求:
方案1:unstack后手动重排列(操作简单,适合临时需求)
在你现有代码后新增如下代码,直接按指定顺序重新选取列即可:
# 定义期望的尺寸顺序 size_order = ['S', 'M', 'L', 'XL'] # 按固定顺序重排列 dff = dff[['COD', 'COLOUR'] + size_order]
方案2:将SIZE列设为有序分类类型(规范写法,适合长期复用)
在分组聚合前先指定SIZE列的排序规则,后续所有涉及SIZE列的分组、排序、展开操作都会自动遵循指定顺序,无需后续手动调整:
df = pd.DataFrame(table_rows,columns=('COD','COLOUR','SIZE','')).sort_values(by=['COD']) # 新增:定义尺寸顺序并将SIZE列转为有序分类类型 size_order = ['S', 'M', 'L', 'XL'] df['SIZE'] = pd.Categorical(df['SIZE'], categories=size_order, ordered=True) # 原有聚合逻辑 dff = df.groupby(['COD','COLOUR','SIZE']).sum().unstack(fill_value=0).reset_index() # 可选:如果unstack后出现多级列名,可执行下方代码拉平列名 dff.columns = ['COD', 'COLOUR'] + size_order
执行后即可得到你期望的列排序结果。
内容的提问来源于stack exchange,提问作者johnnypk
相关产品推荐
相关产品推荐

