2017-03-13 18 views
0

私は以下のデータフレームdfを持っています:車のタイプ別に人のタイプごとに1日あたりのキロ数を表示します。条件に基づいてデータフレームをプロットする

People  Car   dmy   value(km) 
A   Renault 14-05-2016  500 
B   Peugeot 14-05-2016  1000 
A   Citroen 14-05-2016  400 
A   Renault 15-05-2016  24 
B   Peugeot 15-05-2016  247 
A   Renault 15-05-2016  369 
A   Citroen 23-05-2016  692 
A   Citroen 28-05-2016  284 

私は一日あたり20kの1年間のライン

私はの平均値を取得するためにDMY列によってグループ化したい「の値(キロ)を」列を持っている

これは何私であります

私は最初に2つの条件で新しいデータフレームを作成します:1つのタイプの車と1つのカテゴリの人の1日の平均値をグラフに表示します。

yy = (df["Car"] == 'Renault') & (df["People"] == 'A') 

そしてIはgroup.by

zz = yy.groupby('dmy')['value(km)'].mean() 

を実行し、インデックス

ZZ = zz.set_index( 'DMY')

としてDMY列を設定するためのデータフレームを作成します

次に、この新しいzzデータフレームをプロットします。

plt.plot(zz.index, zz["value"].values, linestyle='-', color='b', label="Renault") 
plt.gcf().autofmt_xdate() 
plt.legend() 
plt.show() 

プロットは表示されません。助けを求めるThx!

答えて

0

groupbyは、Dataframeではなく、DataFrameGroupByを返します。

私が最初に必要な列を選択し、aggregateを呼び出し、最終的にplotます:

import numpy as np 
zz = yy[['value(km)', 'dmy']].groupby('dmy').aggregate(np.mean) 
zz.plot() 
関連する問題