可以使用以下代码来编写一个函数来识别对于数值列中为0的值作为缺失值:
import pandas as pd
import numpy as np
def identify_missing_values(df):
"""
Function to identify 0 as a missing value in numerical columns of a dataframe
"""
num_cols = df.select_dtypes(include=np.number).columns.tolist()
df[num_cols] = df[num_cols].replace(0, np.nan)
return df
此函数将输入一个数据框,并选择数据框中的数值列。然后,将这些列中的0替换成np.nan,即缺失值。最后返回已经替换为缺失值的数据框。
我们可以使用以下代码示例测试函数:
df = pd.DataFrame({
'A': [1, 2, 3, 0],
'B': [0, 5, 6, 7],
'C': [0, 9, 2, 3],
'D': ['foo', 'bar', 'baz', 'qux']
})
print("Original DataFrame:")
print(df)
df = identify_missing_values(df)
print("\nDataFrame with 0 replaced with NaN:")
print(df)
运行结果:
Original DataFrame:
A B C D
0 1 0 0 foo
1 2 5 9 bar
2 3 6 2 baz
3 0 7 3 qux
DataFrame with 0 replaced with NaN:
A B C D
0 1.0 NaN NaN foo
1 2.0 5.0 9.0 bar
2 3.0 6.0 2.0 baz
3 NaN 7.0 3.0 qux
可以看到,原始数据框中的0已经被替换成NaN。