gpt4 book ai didi

python-3.x - 按索引自然排序 Pandas 数据帧

转载 作者:行者123 更新时间:2023-12-03 14:34:19 25 4
gpt4 key购买 nike

我的数据框是这种形式

                       material
15N 649.7
16S 703.2
16N 711.7
1S 716.2
1N 724.5
2S 723.5
2N 721.5

我想对前两个数字的索引进行排序,而不是我使用的第一个数字
像这样的代码
runn1.sort_index(axis=0, inplace=True) 

它按第一个数字而不是前两个数字排序,我喜欢数据变成这样
    1S                     716.2
1N 724.5
2S 723.5
2N 721.5
15N 649.7
16S 703.2
16N 711.7

我试图对“S”和“N”之前的数字进行排序,另外,如果有关系,我希望通过以“S”结尾的数字排在第一位来解决它们。所以在上面的例子中,“1S”高于“1N”。

我如何获得这种形式的数据?

最佳答案

IIUC natsortedreindex

from natsort import natsorted
df.reindex(natsorted(df.index))
material
1N 724.5
1S 716.2
2N 721.5
2S 723.5
15N 649.7
16N 711.7
16S 703.2

更新
l=sorted(df.index.str.split('(\d+)([A-z]+)').tolist(), key = lambda x: (-int(x[1]), x[2]))
df.reindex([''.join(x) for x in l ]).iloc[::-1]
material
1S 716.2
1N 724.5
2S 723.5
2N 721.5
15N 649.7
16S 703.2
16N 711.7

关于python-3.x - 按索引自然排序 Pandas 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54209888/

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