【发布时间】:2021-10-21 22:58:19
【问题描述】:
我在http://sprunge.us/Pv338j 有一个 csv 文件。我用它创建了一个数据框。其中有一个日期列。如果我尝试对此日期列进行排序,则该列未排序。这是我的代码:
import pandas as pd
df = pd.read_csv(outputcsv)
df['Date'] = pd.to_datetime(df.Date)
df.Date
0 2020-11-11
1 2020-12-11
2 2020-11-13
3 2020-11-14
4 2020-11-15
274 2021-12-08
275 2021-08-13
276 2021-08-14
277 2021-08-15
278 2021-08-16
Name: Date, Length: 279, dtype: datetime64[ns]
df.sort_values(by='Date', inplace=True)
df.Date
20 2020-01-12
21 2020-02-12
22 2020-03-12
23 2020-04-12
24 2020-05-12
152 2021-12-04
182 2021-12-05
213 2021-12-06
243 2021-12-07
274 2021-12-08
Name: Date, Length: 279, dtype: datetime64[ns]
【问题讨论】:
-
日期时间有混合格式,soemtiems 将月与日交换。所以问题不在于排序,而在于如何将这些数据解析为日期时间。
-
它看起来按升序排序,这是默认形式。如果您希望它按降序排列,只需使用
ascending=False -
@jezrael 我必须手动更改它们吗?我需要 %Y-%m-%d 格式的日期。
-
转换并不容易,因为有时
2021-02-06表示二月,有时是六月。最正确的是手动。 -
@rambalachandran 我需要它们按升序排列。查看排序后的第一个日期。它变了。第一个日期是 2020-11-11。上次约会也发生了同样的事情。
标签: python-3.x pandas dataframe sorting datetime