组合类别失败

combining categories failure

我正在尝试合并数据集中的加热类型类别,以便将出现的少于 2000 的类别合并到其他类别中。但是,当我尝试执行代码时,我不断收到此错误:“无法对具有非 np.nan 值的混合类型进行就地布尔值设置”

我这样试过代码:

heats = tidy_housing_cleaned['heatingType'].value_counts()
heating_mask = tidy_housing_cleaned.isin(heats[heats < 2000].index)
tidy_housing_cleaned[heating_mask] = 'Other'

数据:

错误:

有人以前看过吗?

TypeError:无法使用非 np.nan 值

在 mixed-types 上进行就地布尔设置

我想您看到此错误是因为 tidy_housing_cleaned 中有超过一列 。我们可以用locreplacemask

来克服它

地点

index = heating_mask[heating_mask['heatingType']].index
tidy_housing_cleaned.loc[index,'heatingType'] = 'Other'

替换

tidy_housing_cleaned['heatingType'].replace(
    heats[heats<2000].index, 
    "Other", inplace=True)

面具

tidy_housing_cleaned['heatingType'].mask(
    (heats[tidy_housing_cleaned['heatingType']] < 2000).values, 
    other='Other', inplace=True)