【问题标题】:DateTime format in pythonpython中的日期时间格式
【发布时间】:2018-04-17 01:30:31
【问题描述】:

我正在尝试将 dataFrame 中的列转换为 TD 格式。 该列看起来像这样(它们当前是字符串):

01/11/2012 00:00    
01/11/2012 01:00    
01/11/2012 02:00

这就是我现在所做的:

df['Sdate'] =  pd.to_datetime(df['Sdate'], format='%d%m%y %H:%M.%f')

但是,它会抛出一个错误,

time data '01/11/2012 00:00' does not match format '%d%m%y %H:%M.%f' (match)

不,确定它为什么这样做。不是 HH:MM 00:00 - 23:00 吗?

或者,我在这里错过了一些非常愚蠢的东西吗?

【问题讨论】:

  • 你缺少/,你不需要微秒指令,%y 应该是%Y;而是使用'%d/%m/%Y %H:%M'

标签: python-2.7 pandas datetime


【解决方案1】:

使用to_datetimedayfirst 参数:

df['Sdate'] =  pd.to_datetime(df['Sdate'], dayfirst=True)
print (df)
                Sdate
0 2012-11-01 00:00:00
1 2012-11-01 01:00:00
2 2012-11-01 02:00:00

如果要指定格式:

df['Sdate'] =  pd.to_datetime(df['Sdate'], format='%d/%m/%Y %H:%M')
print (df)
                Sdate
0 2012-11-01 00:00:00
1 2012-11-01 01:00:00
2 2012-11-01 02:00:00

【讨论】:

  • 正是我想要的。谢谢。你能解释一下“dayfirst=True”有什么影响吗?
  • 如果省略它,如果所有日期都不像2012-11-21 00:00:00那样清晰,它将被解析2012-01-11 00:00:00。所以它可以明显地省略,但如果只有几个日期并且不清楚DDMMYY vs MMDDYY 它是有帮助的。
猜你喜欢
  • 2013-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
  • 2021-12-19
相关资源
最近更新 更多