2017-11-27 12 views
1

私は3つのデータフレームdf1、df2、df3を持っています。私はこれらを1つのデータフレームdfにまとめます。今私は、データフレーム内の各日付の分、5パーセンタイル、25パーセンタイル、中央値、90パーセンタイル、および最大値を求め、X軸にパーセンタイルがあり、Y軸に値がある場合はそれをプロットします(各日付の折れ線グラフ)。パンダのデータフレームからパーセンタイルを計算し、Matplotlibを使ってプロットする

df1 
    date   value 
0 2017-11-06 10.20 
1 2017-11-06 40.20 
2 2017-11-06 35.10 
3 2017-11-06 90.45 
4 2017-11-06 60.23 

df2 
    date   value 
1 2017-11-07 110.20 
2 2017-11-07 500.26 
3 2017-11-07 200.16 
4 2017-11-07 350.01 
5 2017-11-07 89.20 

df3 
    date   value 
1 2017-11-08 101.45 
2 2017-11-08 160.34 
3 2017-11-08 41.54 
4 2017-11-08 192.42 
5 2017-11-08 111.12 


df 

    date   value 
0 2017-11-06 10.20 
1 2017-11-06 40.20 
2 2017-11-06 35.10 
3 2017-11-06 90.45 
4 2017-11-06 60.23 
5 2017-11-07 110.20 
6 2017-11-07 500.26 
7 2017-11-07 200.16 
8 2017-11-07 350.01 
9 2017-11-07 89.20 
10 2017-11-08 101.45 
11 2017-11-08 160.34 
12 2017-11-08 41.54 
13 2017-11-08 192.42 
14 2017-11-08 111.12 

答えて

1

IIUC、groupby + agg/quantile使用 - プロットについて

g = df.groupby('date') 

i = g['value'].quantile([0.05, 0.25, 0.5, 0.9]).unstack() 
j = g['value'].agg(['min', 'max']) 

pd.concat([i, j], 1) 

       0.05 0.25  0.5  0.9 min  max 
date              
2017-11-06 15.180 35.10 40.20 78.362 10.20 90.45 
2017-11-07 93.400 110.20 200.16 440.160 89.20 500.26 
2017-11-08 53.522 101.45 111.12 179.588 41.54 192.42 

を、これで十分です - あなたの助けを

i.T.plot(subplots=True) 
plt.show() 

enter image description here

+0

感謝を。私はサブプロットを削除しないので、サブプロット= Trueを削除します。どのように私はY軸のティックスペーシング(値)を制御するのですか? – Sun

+0

@Sun問題ありません。それは私があなたにグラフを表示するためにそれをタイプアップすることを決めたところでした。さらに、私はmplotlibにあまり経験はありませんが、これはあなたを助けるかもしれません:https://stackoverflow.com/a/12608937/4909087 –

関連する問題