【问题标题】:Sort Pandas DF Single Column Not Sorting对 Pandas DF 单列排序未排序
【发布时间】:2020-07-11 07:26:20
【问题描述】:

我的开始 df (ao_dlyav) 看起来像这样:

print(ao_dlyav)
 Month  Day
2      1     -0.423085
10    -0.285268
11    -0.311803
12    -0.401521
13    -0.587606
14    -0.666183
15    -0.541296
16    -0.375310
17    -0.348704
18    -0.304028
19    -0.187099
2     -0.304127
... ...
6     -0.606225
7     -0.448099
8     -0.290676
9     -0.254901

我重置了索引,如下所示:

     Month Day     Index
0       2   1 -0.423085
1       2  10 -0.285268
2       2  11 -0.311803
3       2  12 -0.401521
4       2  13 -0.587606
5       2  14 -0.666183
6       2  15 -0.541296
7       2  16 -0.375310
8       2  17 -0.348704
9       2  18 -0.304028
10      2  19 -0.187099
11      2   2 -0.304127
12      2  20 -0.111563
13      2  21 -0.078732
14      2  22 -0.083873
15      2  23 -0.140437
16      2  24 -0.185606
17      2  25 -0.213042
18      2  26 -0.235634
19      2  27 -0.217211
20      2  28 -0.122296
21      2  29 -0.101111
22      2   3 -0.323254
23      2   4 -0.447901
24      2   5 -0.582465
25      2   6 -0.606225
26      2   7 -0.448099
27      2   8 -0.290676
28      2   9 -0.254901

这是我正在使用的代码,它给了我上面显示的结果,没有按“天”列排序,并且都给出了上面相同的结果。

ao_dlyav = ao_dlyav.sort_values(by = ['Day'],ascending=True)
ao_dlyav = ao_dlyav.sort_values('Day',ascending=True)

谢谢你,我还在学习 Python。

【问题讨论】:

  • 您的 day 列是字符串。在排序之前使用ao_dlyav['Day'] = pd.to_numeric(ao_dlyav['Day'])将其转换为数字。
  • 非常感谢 - 这很有意义!

标签: pandas sorting col


【解决方案1】:

您的Day 列似乎是str 而不是int。您可以通过这样做来验证这一点

ao_dlyav.Day.dtype

所以你应该先把它转换成数字:

ao_dlyav['Day'] = ao_dlyav['Day'].astype(int)
ao_dlyav.sort_values('Day', inplace = True)

【讨论】:

    猜你喜欢
    • 2019-06-09
    • 2022-08-19
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 2019-04-02
    相关资源
    最近更新 更多