如何使用qcut通过训练数据的值来标记所有数据?

2024-03-28 19:29:42 发布

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

qcut在熊猫中是一个很重要的功能

但在正常的机器学习情况下,我们通常需要将数据分为训练数据和测试数据

让我举一个例子:

我有一个包含7个数据的数据集

In [5]: pd.qcut([1,4,3,2,5,3,4], 3, labels=False)
Out[5]: array([0, 1, 0, 0, 2, 0, 1])

但我想要的只是基于前5个元素的qcut。 最后两个,按前5个标签

因此,前5个应获得如下标签:

In [6]: pd.qcut([1,4,3,2,5], 3, labels=False)
Out[6]: array([0, 2, 1, 0, 2])

最后两个应该是[2, 1]

有什么优雅的方法可以做到这一点吗


Tags: 数据in功能机器false元素labels情况
1条回答
网友
1楼 · 发布于 2024-03-28 19:29:42

我们可以做cut作为解决方法

x = pd.qcut([1,4,3,2,5], 3)
out = pd.cut([1,4,3,2,5,3,4],bins = list(x.categories.left)+[np.inf],labels = range(3))
out
Out[182]: 
[0, 2, 1, 0, 2, 1, 2]
Categories (3, int64): [0 < 1 < 2]

相关问题 更多 >