numpy 需要根据索引属性中传递的列对透视表进行排序,它的MultiIndex

n6lpvg4x  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(128)

无法根据索引属性中传递的列按升序对数据透视表进行排序。当输出df时,“Deepthy”首先出现在列名中,我需要“aarathy”首先出现
pls check this image while printing
df = pd. Dataframe ({'名称':【“阿拉蒂”,“深”,“阿拉蒂”,"阿拉蒂“】,”船“:【“珠穆朗玛峰”、“海上绿洲”、“珠穆朗玛峰”、“珠穆朗玛峰”】、“追踪”:['测试跟踪003','测试跟踪008','测试跟踪009','测试跟踪005'],'袋':[“123”,“127”,“129”,“121”],})
数据透视表(df,index=[“名称”,“发货”,“跟踪”,“行李”]).排序索引(axis=1,ascending=True)
我尝试过传递sort_values和sort_index(axis=1,ascending=True),但是id不起作用

oknwwptz

oknwwptz1#

您必须将值转换为小写,并使用key参数进行第一级排序:

#helper column for run your code
df['new'] = 1

df=(pd.pivot_table(df,index=["Name","Ship","Tracking","Bag"])
       .sort_index(level=0,ascending=True, key=lambda x: x.str.lower()))
print (df)
                                            new
Name    Ship              Tracking     Bag     
aarathy everest           TESTTRACK003 123    1
                          TESTTRACK005 121    1
                          TESTTRACK009 129    1
Deepthy Oasis of the Seas TESTTRACK008 127    1

相关问题