简体   繁体   English

多索引中的多列排序 dataframe

[英]Multiple column sorting in multiindex dataframe

I have the following dataframe:我有以下 dataframe:

dic = {'US':{'Traffic':{'new':1415, 'repeat':670}, 'Sales':{'new':67068, 'repeat':105677}},
      'UK': {'Traffic':{'new':230, 'repeat':156}, 'Sales':{'new':4568, 'repeat':10738}}}
d1 = defaultdict(dict)
for k, v in dic.items():
    for k1, v1 in v.items():
        for k2, v2 in v1.items():
            d1[(k, k2)].update({k1: v2})

df = pd.DataFrame(d1)

df.insert(loc=0, column=('', 'Mode'), value=[0,5])
df.insert(loc=1, column=('', 'Symbol'), value=[2,1])
df.columns = df.columns.rename("Skateboard", level=0)
df.columns = df.columns.rename("Q3", level=1)

I want to sort the column-Mode Descending and column-Symbol Ascending.我想对列模式降序和列符号升序进行排序。 I have tried the following:我尝试了以下方法:

df.sort_values(by = ['Mode', 'Symbol'], ascending = [False, True])

Your indexing is incorrect, use:您的索引不正确,请使用:

df.sort_values(by=[('', 'Mode'), ('', 'Symbol')], ascending=[False, True])

Output: Output:

Skateboard                 US            UK       
Q3         Mode Symbol    new  repeat   new repeat
Sales         5      1  67068  105677  4568  10738
Traffic       0      2   1415     670   230    156

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM