gpt4 book ai didi

python - 根据特定索引对多索引 pandas 数据框进行排序

转载 作者:行者123 更新时间:2023-12-01 03:42:39 26 4
gpt4 key购买 nike

我有以下数据框:

 x                                        y

a b c a b c

kk ii jj kk jj ii kk jj ii ii jj kk jj kk ii kk ii jj

1 .1 .01 2 .5 .2 .4 .6 .01 .3 .5 .7 1. 1. 2 .3 .2 .01 .4

2 .5 .01 2 3 .1 4 .3 .1 .01 .02 2 1 5 .7 .3 2 4.5 2.

3 .01 .1 .4 .1 .5 .2 3 .6 1 3 .2 3 .2 1 1 .5 .2 1

我想要的是:

 x                                        y

a b c a b c

ii kk jj ii kk jj ii kk jj ii kk jj ii kk jj ii kk jj

1 .01 .1 2 .4 .5 .2 .3 .6 .01 .5 1 .7 .3 2 1. 0.01 .2 .4

2 0.1 .5 2 4 3 .1 .01 .3 .1 .02 1 2 .3 7 5 4.5 2 2

3 .1 .01 .4 .2 .1 .5 1 3 .6 3 3 .2 1 1 .2 .2 .5 1

事实上,目的是根据 df['1']['x']['a'] 对整个数据帧进行排序。

我得到了新的排序索引,但我不知道如何根据new_idx重新索引df?

df_sort = df.loc['1']['x']['a'].sort_values(axis=0) 

new_idx = df_sort.index --> new_idx = (['ii','kk','jj'])

最佳答案

您可以使用reindex :

df = df.reindex(columns=['ii','kk','jj'], level=2)
print (df)
x y \
a b c a b
ii kk jj ii kk jj ii kk jj ii kk jj ii kk
1 0.01 0.10 2.0 0.4 0.5 0.2 0.30 0.6 0.01 0.50 1.0 0.7 0.3 2.0
2 0.01 0.50 2.0 4.0 3.0 0.1 0.01 0.3 0.10 0.02 1.0 2.0 0.3 0.7
3 0.10 0.01 0.4 0.2 0.1 0.5 1.00 3.0 0.60 3.00 3.0 0.2 1.0 1.0


c
jj ii kk jj
1 1.0 0.01 0.2 0.4
2 5.0 4.50 2.0 2.0
3 0.2 0.20 0.5 1.0

关于python - 根据特定索引对多索引 pandas 数据框进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39326503/

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