pandas- 计算分组列的百分位数(分位数)

pandas- calculate percentile (quantile) of grouped columns

我的数据框看起来像

lang score
en    0.7
fr    0.4
en    0.3
...
it    0.7
fr    0.2
de    0.5
...

我想得到 score 列按 lang 列分组的百分位数 (Pandas quantile),所以我计算平均值、中位数和百分位数为如下:

mean = df.groupby('lang')['score'].mean().sort_values(ascending=False)
median = df.groupby('lang')['score'].median().sort_values(ascending=False)
perc = df.groupby('lang')['score'].quantile(np.linspace(.1, 1, 9, 0))

虽然 meanmedian 是正确的,但我得到 NaN 分位数 col:

fr                       0.1                    NaN
                         0.2                    NaN
                         0.3                    NaN
                         0.4                    NaN
                         0.5                    NaN
...                                             ...
en                       0.5                    NaN
                         0.6                    NaN
                         0.7                    NaN
                         0.8                    NaN
                         0.9                    NaN

哪里出错了?

你的数据框中可能有 NaN 吗?

尝试在 perc 计算之前执行此操作:

df.dropna(subset=['score'])