数据分析之pandas模块③

缺失值处理:

现有数据:

数据分析之pandas模块③

 res.fillna() 对缺失值进行填充,可以指定value=xxx来填充  但实际不合理

数据分析之pandas模块③

 res.dropna() 删除缺失值所在的行

数据分析之pandas模块③

 res.isnull() 缺失值返回True或false

数据分析之pandas模块③

  统计列字段下是否有数据缺失: res.isnull().any(axis=0)

数据分析之pandas模块③

计算数据缺失比例:res.isnull().sum(axis = 0)/res.shape[0]

数据分析之pandas模块③

针对缺失数据不同的处理方式:

对于该表格,gender字段的缺失 可以用众数填充

res.gender.mode()运行结果如下:

数据分析之pandas模块③

进行索引取值才能填充 res.gender.mode()[0]

数据分析之pandas模块③

对于age字段 可以用平均值填充,因为年龄不受极大值或极小值的影响,否则就要用中位数

数据分析之pandas模块③

对于薪资字段 推荐使用中位数来计算,因为受极大值或极小值的影响:

数据分析之pandas模块③

整体填充的代码为:

res.fillna(value={'gender':res.gender.mode()[0],'age':res.age.mean(),'income':res.income.median()},inplace=True)

数据分析之pandas模块③

最后加上inplace=True 直接修改原表数据

数据汇总

透视表功能

现有数据

数据分析之pandas模块③ 

pd.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')

data:指定需要构造透视表的数据集

values:指定需要写入的数值框的字段列表

index:指定需要拉入行标签的字段列表

columns:指定需要拉入列标签的字段列表

aggfunc:指定数值的统计函数,默认为统计均值,也可以指定numpy模块中的其他统计函数

fill_value:指定一个标量,用于填充缺失值

margins:bool类型参数,是否需要显示行或列的总计值,默认为False

dropna:bool类型参数,是否需要删除整列为缺失的字段,默认为True

margins_name:指定行或列的总计名称,默认为All

数据分析之pandas模块③

res.head ()如果不写参数 默认读五行

pd.pivot_table(res, index = 'color', values='price', aggfunc='mean')

数据分析之pandas模块③

 

上一篇:Elasticsearch_数据的聚合查询


下一篇:JavaScript自主学习进度(2)