如何将英文格式日期转为%d/%m/%Y格式?解决pd.to_datetime匹配报错
解决方法
你的报错原因是指定的日期格式与原始数据格式不匹配:你用了%d/%m/%Y(要求输入为日/月/年格式),但原始数据是日 英文月份全称 年的结构,两者无法匹配,因此触发ValueError。
要将数据转换为目标格式,分两步操作:
1. 将字符串转换为datetime对象
使用pd.to_datetime,指定与原始数据匹配的格式%d %B %Y(%B代表英文月份全称):
import pandas as pd df['Timestamp'] = pd.to_datetime(df['Timestamp'], format="%d %B %Y")
2. 格式化为目标字符串格式
用dt.strftime将datetime对象转成日/月/年的字符串格式,其中%m会自动将月份补为两位数:
df['Timestamp'] = df['Timestamp'].dt.strftime("%d/%m/%Y")
合并写法(一步完成)
也可以把两步合并成一行代码:
df['Timestamp'] = pd.to_datetime(df['Timestamp'], format="%d %B %Y").dt.strftime("%d/%m/%Y")
执行后,你的Timestamp列就会变成:
Timestamp 19/11/2022 1/05/2022
内容的提问来源于stack exchange,提问作者hyeri
相关产品推荐
相关产品推荐

