我试图在大熊猫数据框上进行分组,然后在该组上进行qcut,对分位数上的值进行分类。问题是某些组只有一个值,所以qcut抱怨ValueError: Bin edges must be unique
。有没有办法在groupby和qcut上简单地忽略这些情况?
我正在做类似
的事情df['quantile'] = df.groupby(['grouping'])['values'].transform(
lambda x: pd.qcut(x, 4))
我可以在两级分组上这样做
pd.qcut(df.groupby(['grouping', 'param1']).sum()['value'],[0.15,0.25,0.5,0.75,1.0], labels=['0.15', '0.25', '0.5', '0.75'])
但我不确定结果是参数grouping
或整个数据帧的每个组内的分位数。