当我尝试使用包含重复项([0. , 0. , 0.2, 0.4, 0.6, 0.8, 1. ]
)的bin列表运行pd.cut时,它返回以下内容:
ValueError: Bin edges must be unique: array([0. , 0. , 0.2, 0.4, 0.6, 0.8, 1. ]).
You can drop duplicate edges by setting the 'duplicates' kwarg
然而,当我添加duplicates='drop'
(就像qcut可用)时,我得到了
TypeError: cut() got an unexpected keyword argument 'duplicates'
原始的ValueError是否只是误导,因为复制并没有真正用于剪切,或者我做错了什么?我的版本是0.22。我可以在调用pd.cut之前手动控制重复项,但是如果它存在则希望使用现有的pandas功能。
玩具数据/示例:
df = pd.DataFrame({"a":[0, 1, 0.18, 0.2, 0.38, 0.58, 0.78, 0.98]})
bad_bins = [0., 0., 0.2, 0.4, 0.6, 0.8, 1.0]
pd.cut(df['a'], bins=bad_bins)
pd.cut(df['a'], bins=bad_bins, duplicates='drop')