pandas ValueError:时间数据“2022年11月19日”与格式“%d/%m/%Y”不匹配(匹配)

yi0zb3m4  于 2023-04-04  发布在  其他
关注(0)|答案(2)|浏览(231)

我正在尝试O型列到日期。例如

Timestamp
19 November 2022
1 May 2022

用这个公式

df['Timestamp'] = pd.to_datetime(df['Timestamp'], format = "%d/%m/%Y")

但我收到了错误

ValueError: time data '19 November 2022' does not match format '%d/%m/%Y' (match)

我怎样才能得到这个日期格式
时间戳

19/11/2022
1/05/2022
8aqjt8rx

8aqjt8rx1#

这里需要使用%B而不是%m。

df['date'] = pd.to_datetime(df['date'], dayfirst=True, format='%d %B %Y')

另外,函数中的格式变量是用于输入的,而不是输出的。它本质上告诉pandas这是输入的格式。

6yoyoihd

6yoyoihd2#

您可以使用dt.strftime将日期时间转换为其他格式(注意,其他格式的列的dtype将是objectstring))

import pandas

df = pd.DataFrame({"Timestamp": ['19 November 2022', '1 May 2022']})
df

           Timestamp
0   19 November 2022
1         1 May 2022
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
df

   Timestamp
0 2022-11-19
1 2022-05-01
df['Timestamp2'] = df['Timestamp'].dt.strftime('%-d/%m/%Y')
df

   Timestamp  Timestamp2
0 2022-11-19  19/11/2022
1 2022-05-01   1/05/2022

在日期格式中添加一个-以删除前导零。

相关问题