Python pandas如何将CSV中YYYY-MM-DD HH:MM:SS+00:00日期转为YYYY-MM-DD格式
问题解决方案
你之前使用的pd.to_datetime(combined_csv['dates'], format='%Y-%m-%dT')不生效,是因为你指定的格式字符串中用T作为日期和时间的分隔符,但你实际数据里日期和时间的分隔符是空格,格式不匹配导致转换失败。
以下是两种可行的解决方法:
方案1:先转换为日期时间类型再提取日期(最稳妥,适合需要后续做日期运算的场景)
可以先让pandas自动识别格式完成转换,再提取日期部分:
如果你需要保留日期类型的数据:combined_csv['dates'] = pd.to_datetime(combined_csv['dates']).dt.date如果你需要保留字符串类型的
YYYY-MM-DD格式:combined_csv['dates'] = pd.to_datetime(combined_csv['dates']).dt.strftime('%Y-%m-%d')如果你想手动指定格式提升转换速度,正确的格式写法为:
combined_csv['dates'] = pd.to_datetime(combined_csv['dates'], format='%Y-%m-%d %H:%M:%S%z').dt.strftime('%Y-%m-%d')方案2:直接截断字符串(性能最高,适合所有日期格式统一为前10位为
YYYY-MM-DD的场景)
因为你的日期格式固定,前10位就是需要的内容,直接截取字符串即可:combined_csv['dates'] = combined_csv['dates'].str[:10]
所用DataFrame的样例截图:
内容的提问来源于stack exchange,提问作者Tiago Rodrigues
相关产品推荐
相关产品推荐

