web-dev-qa-db-ja.com

Pandas DataSeries.GroupByのプロット

python and pandas)が初めてで、次のDataFrameがあります。

DataFrameをプロットするにはどうすればよいですか。各ModelIDは個別のプロット、saledateはx軸、MeanToDateはy軸です。

試行

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

enter image description here

データフレーム

enter image description here

18
Nyxynyx

groupbyのグループをループしてプロットを作成できます。

import matplotlib.pyplot as plt

for title, group in df.groupby('ModelID'):
    group.plot(x='saleDate', y='MeanToDate', title=title)

pandas dataframesを使用したプロットの詳細については、以下を参照してください。
http://pandas.pydata.org/pandas-docs/stable/visualization.html
そしてgroupby-objectをループするため:
http://pandas.pydata.org/pandas-docs/stable/groupby.html#iterating-through-groups

24
joris

集約の例:

pandasが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=_は期待どおりに動作します-after running plt.legend()、 もちろん。

10
chbrown