将pandas qcut容器应用于新d

2024-03-29 01:34:47 发布

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

我正在使用pandas qcut将一些数据分成20个容器,作为训练二进制分类模型的数据准备工作的一部分,如下所示:

data['VAR_BIN'] = pd.qcut(cc_data[var], 20, labels=False)

我的问题是,如何将从上述qcut语句派生的相同binning逻辑应用到一组新的数据,比如用于模型验证。有什么简单的方法可以做到这一点吗?

谢谢


Tags: 数据模型falsepandasdatalabelsbinvar
1条回答
网友
1楼 · 发布于 2024-03-29 01:34:47

你可以通过传递retbins=True来完成。

考虑以下数据帧:

import pandas as pd
import numpy as np
prng = np.random.RandomState(0)
df = pd.DataFrame(prng.randn(100, 2), columns = ["A", "B"])

pd.qcut(df["A"], 20, retbins=True, labels=False)返回一个元组,其第二个元素是bin。所以你可以:

ser, bins = pd.qcut(df["A"], 20, retbins=True, labels=False)

ser是分类序列,bins是断点。现在,您可以将bin传递给pd.cut,以便将相同的分组应用于另一列:

pd.cut(df["B"], bins=bins, labels=False, include_lowest=True)
Out[38]: 
0     13
1     19
2      3
3      9
4     13
5     17
...

相关问题 更多 >