gpt4 book ai didi

python - 如何将自定义排序应用于多索引列

转载 作者:太空宇宙 更新时间:2023-11-04 01:53:00 25 4
gpt4 key购买 nike

我有一个类似于以下内容的多索引(列)数据框:

my_frame = pd.DataFrame(data={'a':[1,2,3,4],'b':[5,6,7,8],'c':[9,10,11,12], 'd':[13,14,15,16],
'subcolumn_1':['A1','A1','A2','A2'],
'subcolumn_2':['B1','B2','B1','B2']})
my_frame.set_index(keys=['subcolumn_1','subcolumn_2'], inplace=True)
my_frame = my_frame.transpose()


subcolumn_1 A1 A2
subcolumn_2 B1 B2 B1 B2
a 1 2 3 4
b 5 6 7 8
c 9 10 11 12
d 13 14 15 16

我想对 subcolumn_2 进行排序,但不是按字母数字排序,而是使用自定义列表,例如下面的伪代码。

my_frame.sort_subcolumn_2(neworder=["B2","B1"])

subcolumn_1 A1 A2
subcolumn_2 B2 B1 B2 B1
a 2 1 4 3
b 6 5 8 7
c 10 9 12 11
d 14 13 16 15

编辑:我的用例要求在新索引之后进行排序已设置。当前的解决方案要求我在设置之前进行排序指标

最佳答案

实现此目的的一种方法是将 subcolumn_2 转换为有序分类,

from pandas.api.types import CategoricalDtype

cat_type = CategoricalDtype(categories=['B2','B1','B3'], ordered=True)

my_frame['subcolumn_2'] = my_frame['subcolumn_2'].astype(cat_type)

尝试

my_frame.sort_values(by=['subcolumn_2'])

关于python - 如何将自定义排序应用于多索引列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57559605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com