将列转换为日期格式(Pandas Dataframe)

新手上路,请多包涵

我有一个熊猫数据框如下:

 Symbol  Date
A       02/20/2015
A       01/15/2016
A       08/21/2015

我想按 Date 对其进行排序,但该列只是一个 object

我试图使该列成为日期对象,但我遇到了一个问题,即该格式不是所需的格式。需要的格式是 2015-02-20, 等。

所以现在我想弄清楚如何让 numpy 将“美国”日期转换为 ISO 标准,以便我可以使它们成为日期对象,以便我可以按它们进行排序。

我如何将这些美国日期转换为 ISO 标准,或者我在 pandas 中缺少更直接的方法?

原文由 nicholas.reichel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 531
2 个回答

您可以使用 pd.to_datetime() 转换为日期时间对象。它需要一个格式参数,但在你的情况下我认为你不需要它。

 >>> import pandas as pd
>>> df = pd.DataFrame( {'Symbol':['A','A','A'] ,
    'Date':['02/20/2015','01/15/2016','08/21/2015']})
>>> df
         Date Symbol
0  02/20/2015      A
1  01/15/2016      A
2  08/21/2015      A
>>> df['Date'] =pd.to_datetime(df.Date)
>>> df.sort('Date') # This now sorts in date order
        Date Symbol
0 2015-02-20      A
2 2015-08-21      A
1 2016-01-15      A

为了将来的搜索,您可以更改排序语句:

 >>> df.sort_values(by='Date') # This now sorts in date order
        Date Symbol
0 2015-02-20      A
2 2015-08-21      A
1 2016-01-15      A

原文由 JAB 发布,翻译遵循 CC BY-SA 3.0 许可协议

sort 方法已被 弃用 并替换为 sort_values 。使用 df['Date']=pd.to_datetime(df['Date'])

 df.sort_values(by=['Date'])

注意: 就地 排序和/或按降序排序(最近的排在第一位):

 df.sort_values(by=['Date'], inplace=True, ascending=False)

原文由 Reveille 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题