Bin使用整个数据帧的分位数将数据帧值转换为离散类别

2024-09-28 19:21:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想根据分位数“位置”的值将数据帧值转换为离散类别标签(例如1、2、3或a、b、c)。我的数据帧是一个矩阵(36x28),我想把它们分为10类。我试着通过这个方法找到分位数

kor_2005_values = kor_2005.values.flatten()
kor_2005_quantiles = np.nanquantile(kor_2005_values,[0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1])

然后将分位数之间的值(例如,将0和0.1之间的值替换为标签“1”,将0.1和0.2之间的值替换为2)替换为

test = pd.cut(kor_2005, bins = kor_2005_quantiles, labels=['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'])

它给出了错误ValueError: Input array must be 1 dimensional。这就是我为什么尝试的原因

test = pd.qcut(kor_2005_values, [0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1], labels=['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'])

这导致错误消息ValueError: Bin edges must be unique

是否有人知道如何解决此问题,或者更清楚地知道一个更简单的选项来替换/bin独立于pandas行/列的pandas数据帧数据

提前谢谢你


Tags: 数据testpandaslabels错误标签be类别