【问题标题】:Date formatting in PythonPython中的日期格式
【发布时间】:2019-03-07 19:35:06
【问题描述】:

我有一个“start_date”列,其中的数据格式如下:

2018-03-15T00:01:00.000Z
2017-01-14T00:01:00.000Z
2017-01-14T00:01:00.000Z
2017-01-14T00:01:00.000Z
2017-01-14T00:01:00.000Z

我尝试使用以下代码将上述格式转换为“yyyy-mm-dd”,但它以以前的格式返回结果(使用 T00:01:00.000Z):

print(pd.to_datetime(row['start_date'], format='%Y%m%d', errors='ignore'))

结果必须采用以下格式:

2018-03-15
2017-01-14
2017-01-14
2017-01-14
2017-01-14

任何建议将不胜感激!

【问题讨论】:

  • @wjandrea: 以之前的格式返回结果(带T00:01:00.000Z)

标签: python pandas datetime series


【解决方案1】:

我尝试将上述格式转换为“yyyy-mm-dd”

。这不是pd.to_datetime 的目的。 datetime 系列在内部存储为整数。你看到的datetime 的任何类似日期的表示都只是一个表示

format 参数指的是 输入 格式,而不是输出。在这种情况下,要转换为datetime,您不需要指定格式:

df['dt'] = pd.to_datetime(df['dt'], errors='coerce')

print(df)

                   dt
0 2018-03-15 00:01:00
1 2017-01-14 00:01:00
2 2017-01-14 00:01:00
3 2017-01-14 00:01:00
4 2017-01-14 00:01:00

仅返回日期将是后续步骤,其中涉及将您的系列更改为object dtype:

df['dt'] = df['dt'].dt.strftime('%Y-%m-%d')

print(df)

           dt
0  2018-03-15
1  2017-01-14
2  2017-01-14
3  2017-01-14
4  2017-01-14

【讨论】:

  • 谢谢,有没有办法只得到“YYYY-MM-DD”格式的结果?
猜你喜欢
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-09
  • 2018-04-17
  • 2012-05-19
相关资源
最近更新 更多