pd.to_datetime转换年月列报格式不匹配错误原因及解决方法
问题根源
你的报错核心是日期格式符使用错误:
- 格式符
%y仅匹配2位长度的年份(例如14对应2014、24对应2024),但你的数据里年份是4位完整格式(如2014),和%y的匹配规则不相符。 - 额外注意:你给出的样例数据里月份列的列名是大写开头的
Month,代码里写的是小写month,如果实际运行时列名大小写不匹配,还会触发列不存在的KeyError,需要保证字段名完全对应。
修正代码
import pandas as pd # 参考样例数据构造 df = pd.DataFrame({ 'Month': ['2014-01', '2014-02', '2014-03', '2014-04', '2014-05'], 'Fee': [350800, 113800, 375200, 142200, 304500] }) # 正确转换:用大写%Y匹配4位年份,列名和实际字段保持一致 df['Month'] = pd.to_datetime(df['Month'], format='%Y-%m')
转换后因为原始数据仅包含年月、没有具体日信息,pandas会自动将日期补全为对应月份的1号,最终列类型为标准datetime64类型,可直接用于后续时间序列筛选、分组、重采样等数据处理操作。
内容的提问来源于stack exchange,提问作者afa17
相关产品推荐
相关产品推荐

