Pandas中如何基于重采样后的DataFrame绘制Date与Weekly_Sales对比图?
解决Pandas重采样后绘图找不到Date列的问题
嘿,我懂你的困扰!你用resample把周度数据转成月度数据后,Date已经不是独立的列了——它变成了这个DataFrame的索引,这就是你没法直接调用q['Date']来绘图的原因。咱们用两种简单方法解决:
方法1:重置索引,让Date变回普通列
直接调用reset_index()就能把索引转成列,这样你就可以像操作普通列一样用它绘图了:
# 重置索引,将Date转为普通列 q = q.reset_index() # 绘图示例(用matplotlib) import matplotlib.pyplot as plt plt.figure(figsize=(10, 6)) plt.plot(q['Date'], q['Weekly_Sales'], marker='o', color='teal') plt.xlabel('Month') plt.ylabel('Total Monthly Sales') plt.title('Monthly Sales Trend (2010)') plt.xticks(rotation=45) plt.tight_layout() plt.show()
方法2:直接使用索引作为x轴(无需重置)
既然重采样后的索引本身就是日期类型,Pandas和matplotlib都能直接识别它,你可以不用重置索引,直接指定用索引作为x轴:
# 用Pandas自带的绘图方法,自动用索引当x轴 q.plot(y='Weekly_Sales', figsize=(10, 6), marker='o', color='teal') plt.xlabel('Month') plt.ylabel('Total Monthly Sales') plt.title('Monthly Sales Trend (2010)') plt.xticks(rotation=45) plt.tight_layout() plt.show()
补充说明
你看q.head()的输出格式,第一行的Date其实是索引的名称,不是列名——原来的Date列在resample时被用来分组,默认就成了结果的索引。用上面两种方法任意一种,都能顺利画出Date和Weekly_Sales的趋势图啦!
内容的提问来源于stack exchange,提问作者Battu007
相关产品推荐
相关产品推荐

