Python 根据相应的唯一id值绘制平均值

Python 根据相应的唯一id值绘制平均值,python,pandas,matplotlib,plot,Python,Pandas,Matplotlib,Plot,这是我的csv文件。我想找到每个唯一ID的平均成本 例如:ID1,平均成本应该是20 id,cost 1,10 1,20 1,30 2,40 2,50 我通过以下方法获得了正确的输出: df.groupby(['id'])['cost'].mean() id 1 20 2 45 Name: cost, dtype: int64 但是我不知道如何绘制,使得x轴是id(1,2),y轴是平均值(20,45) 下面的代码将平均值设为x轴(应在y轴上),而y轴仅在1之前(应为2且应为x轴

这是我的csv文件。我想找到每个唯一ID的平均成本

例如:ID1,平均成本应该是20

id,cost
1,10 
1,20
1,30
2,40
2,50
我通过以下方法获得了正确的输出:

df.groupby(['id'])['cost'].mean()
id
1    20
2    45
Name: cost, dtype: int64
但是我不知道如何绘制,使得x轴是id(1,2),y轴是平均值(20,45)

下面的代码将平均值设为x轴(应在y轴上),而y轴仅在1之前(应为2且应为x轴)


利用Psidom的评论

df.groupby('id').mean().plot(kind='bar')



你需要一个条形图而不是直方图。啊,这很有意义,因为我已经得到了频率。谢谢!假设您的df不是原始df?假设我的df是您的df。对吗?哦,明白了,我想知道为什么不需要指定“成本”列。
df.groupby('id').mean().plot(kind='bar')
In [108]: df
Out[108]: 
   id  cost
0   1    10
1   1    20
2   1    30
3   2    40
4   2    50