假设我有一个这样的数据框:
import pandas as pd
df = pd.DataFrame({'col1':['A','A', 'A', 'B','B'], 'col2':[2, 4, 6, 3, 4]})
我只想保留col2
处的值分别小于col1
的每组值的第x分位数的行。
例如,对于第60个百分点,数据框应如下所示:
col1 col2
0 A 2
1 A 4
2 B 3
如何在pandas
中有效地做到这一点?
我们有transform
和quantile
df[df.col2.lt(df.groupby('col1').col2.transform(lambda x : x.quantile(0.6)))]
col1 col2
0 A 2
1 A 4
3 B 3