gpt4 book ai didi

python - 在 Pandas 数据框中,如何计算每个月内每个十分位数的中值

转载 作者:太空宇宙 更新时间:2023-11-03 19:59:58 25 4
gpt4 key购买 nike

我有一个每月包含 50 个数据点的数据框。我想计算每个月内每个十分位数的中值。在我的 groupby 通话中,我以日期开头,然后是 qcut。但 qcut 计算整个数据集的 bin,而不是按月。这是我到目前为止所拥有的:

import numpy as np
import pandas as pd

datecol = pd.date_range('12/31/2018','12/31/2019', freq='M')
for ii in range(0,49):
datecol = datecol.append(pd.date_range('12/31/2018','12/31/2019', freq='M'))
datecol = datecol.sort_values()
df = pd.DataFrame(np.random.randn(len(datecol), 1), index=datecol, columns=['Data'])

dfg = df.groupby([df.index, pd.qcut(df['Data'], 10)])['Data'].median()

我尝试对每月分组运行 qcut,但没有成功。

最佳答案

首先,groupby 月份来创建月份内的分位数标签。然后groupby月份和分位数来找到中位数。

df['q'] = df.groupby(df.index).Data.apply(lambda x: pd.qcut(x, 10, labels=False))
df.groupby([df.index, 'q']).median()
<小时/>
                 Data
q
2018-12-31 0 -1.592383
1 -0.959931
2 -0.662911
3 -0.421994
4 -0.098636
5 0.394583
6 0.578562
... ...
2019-12-31 5 0.022384
6 0.398127
7 0.562900
8 0.765605
9 1.355345

[130 rows x 1 columns]

关于python - 在 Pandas 数据框中,如何计算每个月内每个十分位数的中值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59309566/

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