导入 pandas
import pandas as pd
创建测试数据
df = pd.DataFrame([[2021, 'A', 95],[2021, 'A', 92], [2021, 'A',...2021 A 50
3 2021 B 100
4 2021 B 50
5 2021 B 30
6 2021 B 60
分组后...,使用 rank
df['group_pct'] = df.groupby(['year', 'grade']).rank(ascending=True, pct=True)
注意:如果除去分组的字段后...1.000000
4 2021 B 50 0.500000
5 2021 B 30 0.250000
6 2021 B 60 0.750000
分组内...百分位 最接近 0.25 的行
df['group_pct_25'] = (df['group_pct']-0.25).abs()
>>> df