# handling missing values
class handling_missing_data():
# Imputation
# Handling columns which have null values
for col in df[:]:
if ():
if (pd.df[:].astype(pd.Series([np.integer]))):
df = df.select_dtypes(include=[np.integer]).fillna(df.select_dtypes(include=[np.integer]).mean().iloc[0], inplace=True)
elif (pd.df[:].astype(pd.Series([object, str]))):
df = df.select_dtypes(include=['object', 'str']).fillna(df.select_dtypes(include=['object', 'str']).mode().iloc[0], inplace=True)
print(df.head())
为什么此代码不起作用,因为我试图在特定列中识别数据集中的缺失值,并通过使用循环基于列数据类型的均值,模式填充缺失的列值。我正在寻找一些通用方法。
答案 0 :(得分:1)
您的代码有太多错误,无法合理地回答,所以让我向您展示我将如何做。
# Select numeric columns.
a = df.select_dtypes('number')
# Select string and object columns.
b = df.select_dtypes('object')
# Fill numeric columns with mean.
df[a.columns] = a.fillna(a.mean())
# Fill object columns with mode.
df[b.columns] = b.fillna(b.agg(lambda x: x.mode().values[0])