如何按字母顺序按索引值对数据框的列进行排序
How to sort the columns of a data frame by index value in alphabetical order
现在我正在分析从日志中提取的大量数据。
你能告诉我如何按索引按字母顺序对数据框列进行排序吗?
我想按字母顺序 "Temp" 对列值进行排序。
我试过"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
我想按 "Temp" 对多索引数据框进行排序。
以下是我想要的 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
对 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
现在我正在分析从日志中提取的大量数据。
你能告诉我如何按索引按字母顺序对数据框列进行排序吗?
我想按字母顺序 "Temp" 对列值进行排序。
我试过"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
我想按 "Temp" 对多索引数据框进行排序。
以下是我想要的 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
对 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