在对数据进行分析时,我们不可避免的会遇到不完整的数据,对这些不完整的数据进行处理之前我们需要了解数据缺失的情况,以下代码展示了怎么计算不完整数据中行列的缺失情况。
#导入pandas包
import pandas as pd
def miss_row(data):
"""
input:原始数据
output:行的缺失个数和缺失率
"""
row, col = data.shape
row_miss = []
row_total = []
for i in range(row):
w = data.iloc[i,:].isnull().sum()#第i行缺失的总数
row_total.append(w)
row_miss.append(w.sum()/col)
row_miss = pd.Series(row_miss)
row_total = pd.Series(row_total)
row_miss.index = data.index#要保证row_miss和data的index相同
row_percent = row_miss.sort_values(axis = 0,ascending = False)#对其进行排序
row_total = row_total.sort_values(axis = 0,ascending = False)
return row_total, row_percent
def miss_col(data):
"""
input:原始数据
output:列的缺失个数和缺失率
"""
col_total = data.isnull().sum().sort_values(ascending=False)#从大到小按顺序排每个特征缺失的个数
col_percent =(data.isnull().sum()/data.isnull().count()).sort_values(ascending=False)#从大到小按顺序排每个特征缺失率
return col_total, col_percent
if __name__ == '__main__':
#读取数据
data = pd.read_csv("data_test.csv")
miss_rnum, miss_rper = miss_row(data)
miss_cnum, miss_cper = miss_col(data)