【发布时间】:2015-09-29 16:06:48
【问题描述】:
我在 Pandas 中有一个数据框,我想在特定列上进行十分位数,然后获取每个十分位数的平均值。
这是数据集:
我希望对 res 列进行十分位数并保持 ticker 列以及其余数据的不完整性,并获取每个十分位数的平均值。
我尝试使用pd.qcut(beta.res,10),但无法使用其中的结果重新组织数据。
【问题讨论】:
标签: python sorting python-3.x statistics dataframe
我在 Pandas 中有一个数据框,我想在特定列上进行十分位数,然后获取每个十分位数的平均值。
这是数据集:
我希望对 res 列进行十分位数并保持 ticker 列以及其余数据的不完整性,并获取每个十分位数的平均值。
我尝试使用pd.qcut(beta.res,10),但无法使用其中的结果重新组织数据。
【问题讨论】:
标签: python sorting python-3.x statistics dataframe
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.quantile.html
df = pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]),
columns=['a', 'b'])
df.quantile(.1)
a 1.3
b 3.7
Name: 0.1, dtype: float64
df.quantile([.1, .5])
a b
0.1 1.3 3.7
0.5 2.5 55.0
【讨论】:
IIUC,您可以使用 qcut 返回的事实,您可以将其用于 groupby,所以它只是这样的:
df.groupby(pd.qcut(beta.res,10)).mean()
【讨论】: