我想创建一个没有目标的浮动功能的数据框,因此我可以对其进行进一步的操作。
我尝试过:
float_col = data.select_dtypes('float').drop(['TARGET'], axis=1, inplace=True)
# Remove sparse numerical features
for f in float_col:
if data[f].isnull().sum() / data.shape[0] > 0.1667: del data[f] #Remove above 1/6 of NANs
...返回:
TypeError:“ NoneType”对象不可迭代
我也尝试过:
float_col = data.select_dtypes('float').drop(['TARGET'], axis=1, inplace=True).update()
...返回了
AttributeError:'NoneType'对象没有属性'update'
我相信问题是由目标下降引起的。
答案 0 :(得分:1)
当您调用应用更改的方法 时,将返回None
。您使用了.drop(..., inplace=True)
:
data.select_dtypes('float').drop(['TARGET'], axis=1, inplace=True)
因此直接更改data.select_dtypes(...)
的结果,并将None
分配给float_col
。您不能在for
上使用迭代(例如None
循环)。
来自DataFrame.drop()
method documentation:
就位:布尔型,默认为False
如果为
True
,则执行原位操作并返回None
。
如果您想获取除float
之外的所有TARGET
列,则只需删除inplace=True
:
float_col = data.select_dtypes('float').drop(['TARGET'], axis=1)