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))
虽然 mean
和 median
是正确的,但我得到 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'])
我的数据框看起来像
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))
虽然 mean
和 median
是正确的,但我得到 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'])