Python Pandas两列日期格式转换报错求助(YYYYmmdd转dd/mm/YYYY)
解决DataFrame日期格式转换报错问题
错误原因
你在处理StartDate列时犯了一个低级错误:代码里写的是pd.to_datetime(df['EndDate'], format='%Y%m%d'),误用了已经转换为dd/mm/YYYY格式的EndDate列数据去解析,而指定的格式还是原数据的%Y%m%d,两者格式不匹配,自然抛出ValueError。
修正后的代码
import pandas as pd df = pd.read_csv("AllNewFile.csv") # 转换EndDate列格式 df['EndDate'] = pd.to_datetime(df['EndDate'], format='%Y%m%d').dt.strftime('%d/%m/%Y') # 转换StartDate列格式,注意这里要引用StartDate列 df['StartDate'] = pd.to_datetime(df['StartDate'], format='%Y%m%d').dt.strftime('%d/%m/%Y') df.head(10)
优化建议(可选)
如果需要转换多列日期格式,可以封装成函数减少重复代码:
import pandas as pd def convert_to_ddmmyyyy(date_series): return pd.to_datetime(date_series, format='%Y%m%d').dt.strftime('%d/%m/%Y') df = pd.read_csv("AllNewFile.csv") df['EndDate'] = convert_to_ddmmyyyy(df['EndDate']) df['StartDate'] = convert_to_ddmmyyyy(df['StartDate'])
内容的提问来源于stack exchange,提问作者Lone-Learner
相关产品推荐
相关产品推荐

