2024-03-29 01:34:47 发布
网友
我正在使用pandas qcut将一些数据分成20个容器,作为训练二进制分类模型的数据准备工作的一部分,如下所示:
data['VAR_BIN'] = pd.qcut(cc_data[var], 20, labels=False)
我的问题是,如何将从上述qcut语句派生的相同binning逻辑应用到一组新的数据,比如用于模型验证。有什么简单的方法可以做到这一点吗?
谢谢
你可以通过传递retbins=True来完成。
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。所以你可以:
pd.qcut(df["A"], 20, retbins=True, labels=False)
ser, bins = pd.qcut(df["A"], 20, retbins=True, labels=False)
ser是分类序列,bins是断点。现在,您可以将bin传递给pd.cut,以便将相同的分组应用于另一列:
ser
bins
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 ...
你可以通过传递
retbins=True
来完成。考虑以下数据帧:
pd.qcut(df["A"], 20, retbins=True, labels=False)
返回一个元组,其第二个元素是bin。所以你可以:ser
是分类序列,bins
是断点。现在,您可以将bin传递给pd.cut
,以便将相同的分组应用于另一列:相关问题 更多 >
编程相关推荐