gpt4 book ai didi

python - Pandas 函数排序不匹配

转载 作者:行者123 更新时间:2023-12-04 07:30:58 25 4
gpt4 key购买 nike

我在用字符串和浮点数对列进行排序时遇到问题。这是示例:
使用代码:df.sort_values([0, 1], ascending=[True, True])输入:

       0              1   2
0 JJAA Extensão 0.0 4
1 JJAA Extensão 6.0 3
2 JJAA Extensão 12.0 3
3 JJAT Extensão 0.0 3
4 JJAT Extensão 6.0 2
5 JJSL Extensão 18.0 1
6 JJSP Extensão 12.0 3
7 JJSP Extensão 24.0 1
0 JJAA Perna 1.5 4
1 JJAA Perna 4.5 16
2 JJAA Perna 6.0 8
3 JJAA Perna 7.5 4
4 JJAA Perna 9.0 8
5 JJAT Perna 3.0 4
6 JJAT Perna 6.0 4
7 JJAT Perna 7.5 4
8 JJAT Perna 9.0 4
9 JJAT Perna 10.5 4
10 JJSL Perna 7.5 4
11 JJSP Perna 4.5 4
12 JJSP Perna 6.0 4
13 JJSP Perna 7.5 8
输出:
        0              1      2
0 JJAA Extensão 0.0 4
** 2 JJAA Extensão 12.0 3 **
1 JJAA Extensão 6.0 3
0 JJAA Perna 1.5 4
1 JJAA Perna 4.5 16
2 JJAA Perna 6.0 8
3 JJAA Perna 7.5 4
4 JJAA Perna 9.0 8
3 JJAT Extensão 0.0 3
4 JJAT Extensão 6.0 2
** 9 JJAT Perna 10.5 4 **
5 JJAT Perna 3.0 4
6 JJAT Perna 6.0 4
7 JJAT Perna 7.5 4
8 JJAT Perna 9.0 4
5 JJSL Extensão 18.0 1
10 JJSL Perna 7.5 4
6 JJSP Extensão 12.0 3
7 JJSP Extensão 24.0 1
11 JJSP Perna 4.5 4
12 JJSP Perna 6.0 4
13 JJSP Perna 7.5 8
修复“**”行与正确顺序不匹配的问题。我认为排序只是“看到”浮点值的第一个数字。有什么想法可以解决这个问题吗?

最佳答案

让我们试试 natsort

import natsort as ns 
out = df.iloc[ns.index_natsorted(df['1'])].sort_values(['0'],kind='mergesort')
Out[15]:
0 1 2
0 JJAA Extensão0.0 4
1 JJAA Extensão6.0 3
2 JJAA Extensão12.0 3
0 JJAA Perna1.5 4
1 JJAA Perna4.5 16
2 JJAA Perna6.0 8
3 JJAA Perna7.5 4
4 JJAA Perna9.0 8
3 JJAT Extensão0.0 3
4 JJAT Extensão6.0 2
5 JJAT Perna3.0 4
6 JJAT Perna6.0 4
7 JJAT Perna7.5 4
8 JJAT Perna9.0 4
9 JJAT Perna10.5 4
5 JJSL Extensão18.0 1
10 JJSL Perna7.5 4
6 JJSP Extensão12.0 3
7 JJSP Extensão24.0 1
11 JJSP Perna4.5 4
12 JJSP Perna6.0 4
13 JJSP Perna7.5 8

关于python - Pandas 函数排序不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67930332/

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