如何按索引值按字母顺序对数据框的列进行排序

时间:2019-01-29 06:08:04

标签: python pandas dataframe edit

现在我正在分析从日志中提取的许多数据。
您能让我知道如何按字母顺序按索引对数据框的列进行排序吗?
我想按字母顺序按“温度”对列值进行排序。

我尝试使用"sort_values(by="", axis=1)"

   ex) df = df.sort_values(by=['env','In','Temp'], axis=1)

我想我可能不知道如何在多索引中对值进行排序。
直到现在我都没有得到预期的结果。 :

from pandas import Series, DataFrame

raw_data = {'Function': ['env', 'env', 'env', 'func1', 'func1', 'func1'],
            'Type': ['In', 'In', 'In', 'In','In', 'out'],
            'Name': ['Volt', 'Temp', 'BD#', 'Name1','Name2', 'Name3'],
            'Val1': ['Max', 'High', '1', '3', '5', '6'],
            'Val2': ['Typ', 'Mid', '2', '4', '7', '6'],
            'Val3': ['Min', 'Low', '3', '3', '6', '3'],
            'Val4': ['Max', 'High', '4', '3', '9', '4'],
            'Val5': ['Max', 'Low', '5', '3', '4', '5'] }
df = DataFrame(raw_data)
df= df.set_index(["Function", "Type","Name"])
print (df)

下面是打印的数据框

                            Val1    Val2    Val3    Val4    Val5
 Function   Type    Name                    
 env        In      Volt    Max     Typ     Min     Max     Max
                    Temp    High    Mid     Low     High    Low
                    BD#     1       2       3       4       5
 func1      In      Name1   3       4       3       3       3
                    Name2   5       7       6       9       4
            out     Name3   6       6       3       4       5

我想按“临时”对多索引数据框进行排序。

以下是我想要的df。

                            Val1    Val4    Val3    Val5    Val2
 Function   Type    Name                    
 env        In      Volt    Max     Max     Min     Max     Typ
                    Temp    High    High    Low     Low     Mid
                    BD#     1       4       3       5       2
 func1      In      Name1   3       3       3       3       4
                    Name2   5       9       6       4       7
            out     Name3   6       4       3       5       6

1 个答案:

答案 0 :(得分:2)

sort_values一起使用双重转置:

df = df.T.sort_values(('env','In','Temp')).T

print(df)
                     Val1  Val4 Val3 Val5 Val2
Function Type Name                            
env      In   Volt    Max   Max  Min  Max  Typ
              Temp   High  High  Low  Low  Mid
              BD#       1     4    3    5    2
func1    In   Name1     3     3    3    3    4
              Name2     5     9    6    4    7
         out  Name3     6     4    3    5    6