绘制Pandas DataSeries.GroupBy

2024-09-24 22:21:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python和pandas的新手,有以下的DataFrame

如何绘制DataFrame,其中每个ModelID是一个单独的图,saledate是x轴,MeanToDate是y轴?

尝试

data[40:76].groupby('ModelID').plot()

enter image description here

数据帧

enter image description here


Tags: 数据dataframepandasdataplot绘制groupby新手
2条回答

聚合示例:

如果熊猫的颜色美学像ggplot,我想做如下事情:

aggregated = df.groupby(['model', 'training_examples']).aggregate(np.mean)
aggregated.plot(x='training_examples', y='accuracy', label='model')

(列:模型为字符串,训练示例为整数,精度为十进制)

但那只会造成混乱。

多亏了乔里斯的回答,我最终得到了:

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()之后。

您可以通过循环来自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对象上的循环:
http://pandas.pydata.org/pandas-docs/stable/groupby.html#iterating-through-groups

相关问题 更多 >