【问题标题】:Pandas - Converting date column from dd/mm/yy hh:mm:ss to yyyy-mm-dd hh:mm:ssPandas - 将日期列从 dd/mm/yy hh:mm:ss 转换为 yyyy-mm-dd hh:mm:ss
【发布时间】:2019-01-14 10:21:51
【问题描述】:

我有一个数据框 (df),它有一个日期列(列名:sale_date),它以以下格式存储数据

dd/mm/yy hh:mm:ss

我正在尝试将其转换为 yyyy-mm-dd hh:mm:ss。尝试使用以下方法,但仍然无法将其转换为所需的格式。

df['sale_date'] = pd.to_datetime(df['sale_date'])

谁能协助转换此日期列的格式。谢谢

【问题讨论】:

  • pd.to_datetime 应该转换为日期时间,然后您应该能够按照自己的方式格式化。为什么您需要指定格式的它?您可以使用dt.strftime 转换为任何格式,但它将列转换为字符串,而不是日期时间。
  • @KenSyme,感谢您的回复。我正在尝试返回日期列值..
  • 你的to_datetime 行不适合吗?你有错误吗?你得到了什么输出,你期望得到什么?

标签: pandas date datetime


【解决方案1】:

如果您知道您的列中将有一致的格式,您可以将其传递给to_datetime

df['sale_date'] = pd.to_datetime(df['sale_date'], format='%d/%m/%y %H:%M:%S')

如果您的格式不一定一致,但在每种情况下确实有前一个月,则使用 dayfirst=True 可能就足够了,尽管如果不查看数据就很难说:

df['sale_date'] = pd.to_datetime(df['sale_date'], dayfirst=True)

【讨论】:

    【解决方案2】:

    你可以这样做:

    df['sale_date'] = pd.to_datetime(df['sale_date'], format='%d/%m/%y %H:%M:%S').dt.strftime('%Y-%m-%d %H:%M:%S')
    

    输入:

               sale_date
    0  04/12/10 21:12:35
    1  04/12/10 21:12:30
    

    输出:

                 sale_date
    0  2010-12-04 21:12:35
    1  2010-12-04 21:12:30
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-07
      • 1970-01-01
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多