【问题标题】:ValueError: time data- does not match format - PandasValueError:时间数据 - 与格式不匹配 - Pandas
【发布时间】:2018-02-05 22:42:00
【问题描述】:

我知道这个问题已经被问过很多次了,有很多answers。我按照以前的线程,仍然没有得到我的答案。 当我这样做时,没有errors= coerce

df['DATE'] = pd.to_datetime(df['Date'], format= "%d-%b-%Y %H:%M:%S")

我收到一个错误:

ValueError:时间数据 '26-Aug-17 10:11:29' 与格式 '%d-%b-%Y %H:%M:%S' 不匹配(匹配)

如您所见,我认为我的格式正确。但它仍然给出错误。

当我根据this 帖子处理errors= coerce 时,

df['DATE'] = pd.to_datetime(df['Date'], format= "%d-%b-%Y %H:%M:%S", `errors= coerce`)

这运行良好,但我在DATE 列中得到NaT。比如像这样,

        Date                    X           DATE    
  0    26-Aug-17 10:11:29    95.617378      NaT
  1    26-Aug-17 11:11:29    93.617378      NaT
  2    26-Aug-17 12:11:29    91.617378      NaT
  3    26-Aug-17 13:11:29    90.000000      NaT

我的格式正确,但仍然找不到我收到此错误的原因。任何想法都会有所帮助。

【问题讨论】:

  • @jezrael 感谢您的建议,仍然得到相同的结果。没有变化!
  • print (df['Date'].tolist()[:10])'26-Aug-17 10:11:29', '26-Aug-17 11:11:29', '26-Aug-17 12:11:29',

标签: python pandas datetime


【解决方案1】:

您需要将Y 更改为y,因为Y 需要全年,但y 只有最后2 位数字,请参阅http://strftime.org/

df['DATE'] = pd.to_datetime(df['Date'], format= "%d-%b-%y %H:%M:%S")
print (df)
                 Date          X                DATE
0  26-Aug-17 10:11:29  95.617378 2017-08-26 10:11:29
1  26-Aug-17 11:11:29  93.617378 2017-08-26 11:11:29
2  26-Aug-17 12:11:29  91.617378 2017-08-26 12:11:29
3  26-Aug-17 13:11:29  90.000000 2017-08-26 13:11:29

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 2021-04-18
    • 1970-01-01
    • 2014-09-27
    • 2018-03-18
    • 1970-01-01
    相关资源
    最近更新 更多