sr = [3776,1120,556,192] rsr = list(np.random.choice(['b','e','c','r'],2480,p=pd.Series(sr)/sum(sr))) df.loc[df['stalk-root'] == '?','stalk-root'] = np.nan df['stalk-root'].replace(to_replace=np.nan, value=rsr, inplace=True)
时间: 2023-08-11 20:07:46 浏览: 135
这段代码中,`to_replace` 参数应该是一个需要被替换的值,而不是数据类型。因此,如果您使用 `np.nan` 作为 `to_replace` 参数,会出现 "Invalid 'to_replace' type: 'float'" 的错误。
如果您想要将所有的缺失值替换为 `rsr` 中的值,可以将 `to_replace` 参数设置为缺失值所对应的数据类型(例如字符串 `'?'`),并将 `value` 参数设置为 `rsr`,如下所示:
```python
df.loc[df['stalk-root'] == '?', 'stalk-root'] = np.nan
df['stalk-root'].replace(to_replace='?', value=rsr, inplace=True)
```
这样,所有的 `'?'` 值将被替换为 `rsr` 中的值,而不会出现 "Invalid 'to_replace' type: 'float'" 的错误。
阅读全文