【问题标题】:How to sort dates imported from a CSV file?如何对从 CSV 文件导入的日期进行排序?
【发布时间】:2020-02-12 16:19:14
【问题描述】:

我正在尝试编写一个可以打印已排序日期列表的程序,但它会按“日”而不是完整日期、日、月、年进行排序

我对 python 很陌生,所以我可能做错了很多,但任何帮助将不胜感激。 所以我有它,以便您可以在两页上查看列表。 日期将排序 2004 年 12 月 3 日 2001 年 8 月 13 日 2014 年 10 月 15 日 但我需要对完整日期进行排序

df = pd.read_csv('Employee.csv')
df = df.sort_values('Date of Employment.')
List1 = df.iloc[:50, 1:]
List2 = df.iloc[50:99, 1:]

【问题讨论】:

标签: python pandas date


【解决方案1】:

必须使用 datetime 数据类型才能正确排序日期

您需要使用以下任一方法将日期转换为日期时间对象:

方法 1

pd.to_datetime + DataFrame.sort_values:

df['Date of Employment.'] = pd.to_datetime(df['Date of Employment.']')

方法2

您可以在加载 Pandas DataFrame 的同时解析日期:

df = pd.read_csv('Employee.csv', parse_dates=['Date of Employement.'])

这等同于第一种方法,只是一切都在一个步骤中完成。


接下来,您需要按升序或降序对日期时间值进行排序。

升序:

`df.sort_values('Date of Employment.')`

降序

`df.sort_values('Date of Employment.',ascending=False)`

【讨论】:

    【解决方案2】:

    您需要转换工作日期。到排序前的日期

    df['Date of Employment.'] = pd.to_datetime(df['Date of Employment.'],format= '%d/%m/%Y')
    

    否则它只是 Python 的字符串

    【讨论】:

      猜你喜欢
      • 2021-09-07
      • 2018-09-02
      • 1970-01-01
      • 2021-03-27
      • 2013-12-12
      • 2014-07-06
      • 2018-04-14
      • 2010-09-26
      • 2019-06-16
      相关资源
      最近更新 更多