【发布时间】:2020-03-12 07:27:23
【问题描述】:
我有一个类别和数量的数据框。可以使用冒号分隔的字符串将类别嵌套到无限级别的子类别中。我希望按降序对其进行排序。但采用分层类型的方式,如图所示。
我需要如何排序
CATEGORY AMOUNT
Transport 5000
Transport : Car 4900
Transport : Train 100
Household 1100
Household : Utilities 600
Household : Utilities : Water 400
Household : Utilities : Electric 200
Household : Cleaning 100
Household : Cleaning : Bathroom 75
Household : Cleaning : Kitchen 25
Household : Rent 400
Living 250
Living : Other 150
Living : Food 100
编辑: 数据框:
pd.DataFrame({
"category": ["Transport", "Transport : Car", "Transport : Train", "Household", "Household : Utilities", "Household : Utilities : Water", "Household : Utilities : Electric", "Household : Cleaning", "Household : Cleaning : Bathroom", "Household : Cleaning : Kitchen", "Household : Rent", "Living", "Living : Other", "Living : Food"],
"amount": [5000, 4900, 100, 1100, 600, 400, 200, 100, 75, 25, 400, 250, 150, 100]
})
注意:这是我想要的顺序。它可以在排序之前以任意顺序排列。
EDIT2: 如果有人在寻找类似的解决方案,我在这里发布了我选择的解决方案:How to sort dataframe in pandas by value in hierarchical category structure
【问题讨论】:
-
到目前为止你尝试了什么?
-
dfs = dfs.sort_values(['amount', 'category'], ascending=[True, True])但这不是我想要的。我想我需要一个递归类型排序。 -
显示您的数据框示例
-
在编辑中添加
标签: python pandas sorting hierarchical