import pandas as pd data = pd.read_csv("src/death.csv", index_col='Unnamed: 0') data = data.dropna(axis=1, thresh=data.shape[0] * 0.2) data = data.dropna(axis=0, thresh=data.shape[1] * 0.2) ########## Begin ########## # 统计存在缺失值的列 # 逐列按要求替换缺失值,并打印每列替
时间: 2024-03-17 19:46:51 浏览: 85
换前后的缺失值个数和替换所用的方法
可以通过以下代码实现:
```
# 统计存在缺失值的列
missing_cols = data.columns[data.isnull().any()].tolist()
# 逐列按要求替换缺失值,并打印每列替换前后的缺失值个数和替换所用的方法
for col in missing_cols:
null_count_before = data[col].isnull().sum()
if null_count_before > 0:
if data[col].dtype == 'object':
data[col].fillna('unknown', inplace=True)
print(f"{col}: {null_count_before} NaN values replaced with 'unknown'")
else:
median = data[col].median()
data[col].fillna(median, inplace=True)
null_count_after = data[col].isnull().sum()
print(f"{col}: {null_count_before} NaN values replaced with median {median}. {null_count_after} NaN values remaining.")
else:
print(f"{col}: No missing values.")
```
这段代码会先找出存在缺失值的列,然后逐列替换缺失值。如果列的数据类型为字符串类型,则使用字符串'unknown'替换缺失值,并打印替换前后缺失值的个数和替换所用的方法;如果列的数据类型为数值类型,则使用该列的中位数替换缺失值,并打印替换前后缺失值的个数、替换所用的方法和替换后仍然存在的缺失值的个数。如果列中本来就没有缺失值,则直接打印该列没有缺失值。
阅读全文