来自我的'组合的数据'数据框如下所示:
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')
我得到了这个情节:
我如何绘制" pred"为每个" lmi"保持对(lmi,pr)完整的数据点?
答案 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)
您可以先按$book
对DataFrame
进行分组,然后按照标题建议计算每组的平均值:
lmi
在一行中我们:
combos.groupby('lmi').pred.mean().plot()
列DataFrame
进行分组
lmi
pred
列
lmi
组lmi
组的平均值