我是一位有用的助手,可以为您进行翻译。以下是您需要翻译的内容:
有没有一种方法可以结合使用分组/重采样和分位数作为参数?
谢谢。
我有一个每小时值的时间序列,并尝试基于每周/每月推导出一些基本统计数据。
如果我们使用以下抽象数据框,其中每列都是时间序列:
rng = pd.date_range('1/1/2016', periods=2400, freq='H')
df = pd.DataFrame(np.random.randn(len(rng), 4), columns=list('ABCD'), index=rng)
print df[:5]
返回:
A B C D
2016-01-01 00:00:00 1.521581 0.102335 0.796271 0.317046
2016-01-01 01:00:00 -0.369221 -0.179821 -1.340149 -0.347298
2016-01-01 02:00:00 0.750247 0.698579 0.440716 0.362159
2016-01-01 03:00:00 -0.465073 1.783315 1.165954 0.142973
2016-01-01 04:00:00 1.995332 1.230331 -0.135243 1.189431
我可以调用:
r = df.resample('W-MON')
然后使用:r.min()
,r.mean()
,r.max()
,它们都可以正常工作。例如,print r.min()[:5]
返回:
A B C D
2016-01-04 -2.676778 -2.450659 -2.401721 -3.209390
2016-01-11 -2.710066 -2.372032 -2.864887 -2.387026
2016-01-18 -2.984805 -2.527528 -3.414003 -2.616434
2016-01-25 -2.625299 -2.947864 -2.642569 -2.262959
2016-02-01 -2.100062 -2.568878 -3.008864 -2.315566
然而,如果我尝试使用分位数公式计算百分位数,即r.quantile(0.95)
,我会得到每个列的一个值。
A 0.090502
B 0.136594
C 0.058720
D 0.125131
有没有一种方法可以结合使用分组/重采样和分位数作为参数?
谢谢。