Pandas转换Datetime后绘制时间序列面积图报错如何解决
问题原因
你调用df.plot()方法时,传入的列列表包含了本应作为X轴的时间列,面积图默认会将你传入的所有列都作为Y轴的数值序列进行绘制,datetime64类型无法和数值型的债务数据统一数据类型,因此触发类型错误。
之前object类型的日期没有报错属于巧合的正常输出:object类型的字符串不会被识别为可绘制的数值类型,绘图时只会自动选取数值列作为Y轴,不会触发类型冲突。
解决方法
两种常用写法均可实现需求:
- 方法1:指定x参数,明确将时间列作为X轴,只把数值列传入Y轴绘制列表
debt['Record_Date'] = pd.to_datetime(debt['Record_Date']) debt.plot(kind='area', x='Record_Date', y='Debt_Held_by_the_Public')
- 方法2:将时间列设置为DataFrame的索引,直接绘制数值列即可,pandas会自动用索引作为X轴
debt['Record_Date'] = pd.to_datetime(debt['Record_Date']) debt = debt.set_index('Record_Date') debt['Debt_Held_by_the_Public'].plot(kind='area')
内容的提问来源于stack exchange,提问作者kalidogg
相关产品推荐
相关产品推荐

