我是 python 和 pandas 的新手,并且有以下DataFrame
.
如何绘制DataFrame
每个ModelID
单独的图,saledate
是 x 轴MeanToDate
还是 y 轴?
试图
data[40:76].groupby('ModelID').plot()
数据框
我是 python 和 pandas 的新手,并且有以下DataFrame
.
如何绘制DataFrame
每个ModelID
单独的图,saledate
是 x 轴MeanToDate
还是 y 轴?
试图
data[40:76].groupby('ModelID').plot()
数据框
您可以通过遍历来自的组来制作图groupby
:
import matplotlib.pyplot as plt
for title, group in df.groupby('ModelID'):
group.plot(x='saleDate', y='MeanToDate', title=title)
有关使用 pandas 数据帧进行绘图的更多信息,请参阅:http:
//pandas.pydata.org/pandas-docs/stable/visualization.html
以及在 groupby-object 上循环:http:
//pandas.pydata.org/pandas- docs/stable/groupby.html#iterating-through-groups
聚合示例:
如果熊猫有像ggplot这样的色彩美学,我想做如下的事情:
aggregated = df.groupby(['model', 'training_examples']).aggregate(np.mean)
aggregated.plot(x='training_examples', y='accuracy', label='model')
(列:模型是字符串,training_examples 是整数,准确率是小数)
但这只会造成混乱。
感谢joris的回答,我最终得到:
for index, group in df.groupby(['model']):
group_agg = group.groupby(['training_examples']).aggregate(np.mean)
group_agg.plot(y='accuracy', label=index)
我发现这title=
只是在每次循环迭代中替换了绘图的单个标题,但label=
确实符合您的预期——当然是在运行之后plt.legend()
。