处理 pandas Python 中的缺失值和错误值
Handling missing values and wrong values in pandas Python
我正在尝试处理数据集中的缺失值。
我在 Python 3 中使用 pandas。
我有一列 'name' 应该只包含人名,但它也包含随机数。我怎样才能删除它们或将它们更改为 NaN,以便稍后我可以删除它们或用新名称填充它们。
这就是我处理第一个缺失值的方式:
df_test["name"] = df_test['name'].astype(str)
df_test['name'].replace('-inf', np.nan, inplace=True)
df_test['name'].replace('0', np.nan, inplace=True)
df_test
输出:
name
1 NaN
2 NaN
3 29014
...
10 21893
11 Amber Rose
所以前两个值是“-inf”和“0”,我用 NaN 替换了它们,但是如何替换字符串列中的随机数?我必须手动执行此操作吗?
您可以用 NaN
替换数字,如下所示:
df_test = pd.DataFrame({
'name': [np.NaN, np.NaN, '29014', '21893', 'Amber Rose']
})
df_test['name'] = np.where(
pd.to_numeric(df_test['name'], errors='coerce').isnull()==False,
np.NaN,
df_test['name']
)
df_test
name
0 NaN
1 NaN
2 NaN
3 NaN
4 Amber Rose
我正在尝试处理数据集中的缺失值。 我在 Python 3 中使用 pandas。 我有一列 'name' 应该只包含人名,但它也包含随机数。我怎样才能删除它们或将它们更改为 NaN,以便稍后我可以删除它们或用新名称填充它们。 这就是我处理第一个缺失值的方式:
df_test["name"] = df_test['name'].astype(str)
df_test['name'].replace('-inf', np.nan, inplace=True)
df_test['name'].replace('0', np.nan, inplace=True)
df_test
输出:
name
1 NaN
2 NaN
3 29014
...
10 21893
11 Amber Rose
所以前两个值是“-inf”和“0”,我用 NaN 替换了它们,但是如何替换字符串列中的随机数?我必须手动执行此操作吗?
您可以用 NaN
替换数字,如下所示:
df_test = pd.DataFrame({
'name': [np.NaN, np.NaN, '29014', '21893', 'Amber Rose']
})
df_test['name'] = np.where(
pd.to_numeric(df_test['name'], errors='coerce').isnull()==False,
np.NaN,
df_test['name']
)
df_test
name
0 NaN
1 NaN
2 NaN
3 NaN
4 Amber Rose