Python 根据相应的唯一id值绘制平均值
这是我的csv文件。我想找到每个唯一ID的平均成本 例如:ID1,平均成本应该是20Python 根据相应的唯一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轴
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