首页 > 解决方案 > 按原样对数据帧行进行排序,没有索引问题

问题描述

我有一个这样的数据框:

      col1 
0     A      
1     A
2     B
3     A
.
.
9     C
10    D
11    A
.
.

19    B
20    A
21    B
22    D

当我使用df.sort_values(by=['col1'])它时,它会给我一个这样的数据框:

     col1 
0     A      
1     A
11    A
20    A
3     A
19    B
2     B
.
.
.

我希望我的值使用正确的索引按顺序排序,而不是在 3 之前的索引 11 或 20:

    col1 
0     A      
1     A
3     A
11    A
20    A
2     B
19    B
.
.
.

我试过ignore_index=True了,但它只更正了索引,排序的行仍然是错误的。

标签: pythonpandasdataframesorting

解决方案


用于kind="mergesort"稳定排序:

print(df.sort_values(by="col1", kind="mergesort"))

印刷:

   col1
0     A
1     A
3     A
11    A
20    A
2     B
19    B
21    B
9     C
10    D
22    D

推荐阅读