用熊猫绘图:组和平均值

时间:2017-04-10 10:05:28

标签: python pandas plot

来自我的'组合的数据'数据框如下所示:

pr = [1.0,2.0,3.0,4.0,1.0,2.0,3.0,4.0,1.0,2.0,3.0,4.0,.....1.0,2.0,3.0,4.0]

lmi = [200, 200, 200, 250, 250,.....780, 780, 780, 800, 800, 800]

pred = [0.16, 0.18, 0.25, 0.43, 0.54......., 0.20, 0.34, 0.45, 0.66]

我将结果绘制成如下:

fig,ax = plt.subplots()

for pr in [1.0,2.0,3.0,4.0]:
    ax.plot(combos[combos.pr==pr].lmi, combos[combos.pr==pr].pred, label=pr)

ax.set_xlabel('lmi')
ax.set_ylabel('pred')
ax.legend(loc='best')

我得到了这个情节:

enter image description here

我如何绘制" pred"为每个" lmi"保持对(lmi,pr)完整的数据点?

2 个答案:

答案 0 :(得分:1)

截至您对问题的更新时,现在很清楚您想要计算每对(pr, lmi)的均值。这可以通过对这些列进行分组然后简单地调用mean()来完成。使用reset_index(),我们会将DataFrame格式恢复为之前的格式。

$ combos.groupby(['lmi', 'pr']).mean().reset_index()

   lmi   pr  pred
0  200  1.0  0.16
1  200  2.0  0.18
2  200  3.0  0.25
3  250  1.0  0.54
4  250  4.0  0.43
5  780  2.0  0.20
6  780  3.0  0.34
7  780  4.0  0.45
8  800  1.0  0.66

在这个新的DataFrame pred确实包含了手段,您可以使用之前使用的相同绘图程序。

答案 1 :(得分:0)

您可以先按$bookDataFrame进行分组,然后按照标题建议计算每组的平均值:

lmi

在一行中我们:

  1. combos.groupby('lmi').pred.mean().plot()
  2. 对组合DataFrame进行分组
  3. 获取每个lmi
  4. pred
  5. 计算每个lmi
  6. 的pred列的平均值
  7. 绘制每个lmi组的平均值