TypeError:“ NoneType”不可迭代

时间:2019-03-17 14:36:17

标签: python pandas

我想创建一个没有目标的浮动功能的数据框,因此我可以对其进行进一步的操作。

我尝试过:

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'

我相信问题是由目标下降引起的。

1 个答案:

答案 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)