尝试使用一个函数对多个数字特征进行装箱并将其应用于数据框。
这是我当前的代码,适用于1个特定列:
bins = [0,2,9,40,30000]
# create bin function that transforms values based on bins.
def bin(row):
if row.cb <= bins[1]:
val = 0
elif row.cb <= bins[2]:
val = 1
elif row.cb <= bins[3]:
val = 2
elif row.cb <= bins[4]:
val = 3
return val
X['cb_bin'] = X.apply(bin, axis=1)
由于对pd.qcut遇到了麻烦,因此我手动对数值特征进行了合并。列表箱具有存储的箱的值。当前,为“ cb”列中的每一行创建bin值。应用该函数时,我将使用转换后的bin值创建一个新列。
但是,我需要对多个数字功能执行此操作,而不是单独使用“ cb”。我需要如何更改代码,以便在调用bin函数时可以输入列名。
我已经尝试过了:
def bin(row, col):
if row.col <= bins[1]:
val = 0
elif row.col <= bins[2]:
val = 1
elif row.col <= bins[3]:
val = 2
elif row.col <= bins[4]:
val = 3
return val
X['cb_bin'] = X.apply(bin(row, cb), axis=1)
不幸的是,这不起作用。有人可以帮我吗?