如何绘制按日期聚合后的Pandas DataFrame柱状图
解决聚合后绘制柱状图的问题
嘿,我明白你遇到的问题了——因为用groupby聚合后,date变成了DataFrame的索引,不再是普通的列,所以你直接用x='date'会找不到这列,这就是报错的根源。下面给你几种简单的解决办法:
方法一:聚合时保留date为列
修改你的聚合代码,加上as_index=False参数,这样date就会保持为普通列,而不是索引:
df_daily = df.groupby('date', as_index=False).agg(['sum']) # 现在可以直接调用plot,注意y轴要指定完整的层级列名 df_daily.plot(x='date', y=('payout_value', 'sum'), kind="bar")
方法二:重置已聚合DataFrame的索引
如果你已经生成了df_daily(此时date是索引),可以把索引转换为普通列后再绘图:
# 将索引转为普通列 df_daily.reset_index(inplace=True) # 执行绘图操作 df_daily.plot(x='date', y=('payout_value', 'sum'), kind="bar")
方法三:直接用索引作为X轴
因为date已经是DataFrame的索引,你可以不用手动指定x参数,matplotlib会自动把索引当作X轴:
df_daily.plot(y=('payout_value', 'sum'), kind="bar")
最后别忘了导入matplotlib并显示图表:
import matplotlib.pyplot as plt plt.show()
内容的提问来源于stack exchange,提问作者user40
相关产品推荐
相关产品推荐

