gpt4 book ai didi

python - 使用 matplotlib 绘制百分位数

转载 作者:行者123 更新时间:2023-11-28 21:38:56 25 4
gpt4 key购买 nike

我有三个数据帧 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

最佳答案

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

关于python - 使用 matplotlib 绘制百分位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47503718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com