【发布时间】:2020-02-14 15:16:18
【问题描述】:
我正在尝试使用 numpy.但是,执行此操作的功能对我来说似乎不清楚,因为它需要一个数组才能工作:
>>> a = np.array([[10, 7, 4], [3, 2, 1]])
>>> a
array([[10, 7, 4],
[ 3, 2, 1]])
>>> np.percentile(a, 50)
这将是数组上第 50 个百分位数的方式。
这是我的桌子的样子:
Date Hour Month Value
9/1/2019 0:00 SEPTEMBER 377.3333333
9/1/2019 0:00 SEPTEMBER 268.8
9/1/2019 0:00 SEPTEMBER 400.8
9/1/2019 0:00 SEPTEMBER 279.1304348
9/1/2019 0:05 SEPTEMBER 440
9/1/2019 0:05 SEPTEMBER 228
9/1/2019 0:05 SEPTEMBER 350
9/1/2019 0:05 SEPTEMBER 283.2
9/1/2019 0:10 SEPTEMBER 385.3333333
9/1/2019 0:10 SEPTEMBER 240
9/1/2019 0:10 SEPTEMBER 347.5
9/1/2019 0:10 SEPTEMBER 175.2
9/1/2019 0:15 SEPTEMBER 440
9/1/2019 0:15 SEPTEMBER 202.8
9/1/2019 0:15 SEPTEMBER 204
9/1/2019 0:15 SEPTEMBER 182.4
...
9/2/2019 0:00 SEPTEMBER 416
9/2/2019 0:00 SEPTEMBER 134.4
9/2/2019 0:00 SEPTEMBER 370
...
直到九月底
我想计算每 5 分钟间隔的第 95 个百分位数。
最终的结果应该是这样的:
Time September
0:00 95th Value
0:05 95th Value
0:10 95th Value
0:15 95th Value
....
【问题讨论】:
-
你能用 pandas 代替 numpy 吗?如果您将表加载到数据框中,则解决方案只是
dataframe.groupby(['Hour', 'Month'])['Value'].quantile(0.95)。
标签: python numpy percentile