2024-09-27 02:19:58 发布
网友
为了机器学习的目的,我正在尝试预处理一些数据。我目前正在尝试清理一些NaN值,并将它们替换为“未知”和基于列名的前缀或后缀
原因是当我使用一个热编码时,我不能将多个同名列输入xgboost
所以我有以下几点
df = df.apply(lambda x: x.replace(np.nan, 'unknown'))
我想用“unknown_columname”替换df中的所有NaN实例。有没有简单易行的方法
首先,让我们创建备份阵列,以便在缺少值时填充
s = np.core.defchararray.add('unknown',df.columns.values)
然后我们可以简单地用s中的正确值替换每个NaN:
cols = df.columns.values for col_name in cols: df.col_name.fillna(s, inplace=True)
试试df = df.apply(lambda x: x.replace(np.nan, f'unknown_{x.name}'))
df = df.apply(lambda x: x.replace(np.nan, f'unknown_{x.name}'))
您也可以使用df = df.apply(lambda x: x.fillna(f'unknown_{x.name}')
df = df.apply(lambda x: x.fillna(f'unknown_{x.name}')
首先,让我们创建备份阵列,以便在缺少值时填充
然后我们可以简单地用s中的正确值替换每个NaN:
试试
df = df.apply(lambda x: x.replace(np.nan, f'unknown_{x.name}'))
您也可以使用
df = df.apply(lambda x: x.fillna(f'unknown_{x.name}')
相关问题 更多 >
编程相关推荐