Sun*_*Sun 2 python matplotlib pandas
我有三个数据框df1,df2和df3。我将它们合并到一个数据帧df中。现在,我想在数据框中找到每个日期的最小值,5%,25%,中位数,90%和最大值,并将其绘制(每个日期的线图),其中X轴具有百分位数,Y轴具有值。
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
对于剧情,这应该足够了-
i.T.plot(subplots=True)
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3442 次 |
| 最近记录: |