【问题标题】:Python Pandas Date in format 'Thursday, March 03, 2019' want to convert to %m/%d/%y格式为“2019 年 3 月 3 日星期四”的 Python Pandas 日期希望转换为 %m/%d/%y
【发布时间】:2021-07-07 01:16:35
【问题描述】:

我正在使用 python pandas 和 datetime 库将日期列中的日期从以下格式“2019 年 3 月 3 日星期四”转换为“2019 年 3 月 3 日”。

以下是我用来获取结果的代码,但我继续收到 ValueError。 '未转换的数据保留'。

有人知道解决这个问题的方法吗?

df_['Date'] = df_['Date'].apply(lambda x: dt.datetime.strptime(x, '%A, %B %d, %Y').strftime('%d/%m/%Y'))

【问题讨论】:

  • 试试:pd.to_datetime(df_['Date'],errors='coerce').dt.normalize()
  • 似乎您在“日期”列中有一些值,这些值包含的信息不仅仅是该格式。如果有剩余信息,格式字符串期望所有值都被转换,它将引发该值错误。

标签: python pandas datetime


【解决方案1】:

如果您的日期字符串是其他字符串的一部分,我认为您可以在pandas.to_datetime 中使用exact=False

exact 行为:如果为 True,则需要完全匹配的格式。 - 如果为 False,则允许格式匹配目标字符串中的任何位置。

前:

In [6]: pd.to_datetime("Send this to me on Thursday, March 31, 2015", format='%A, %B %d, %Y', exact=False)                            
Out[6]: Timestamp('2015-03-31 00:00:00')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 2022-06-12
    相关资源
    最近更新 更多