python数据清洗学习笔记--数据统计

python数据清洗学习笔记–数据统计

1、数据分组运算

分组计算根据某个或者某几个字段对数据集进行分组,然后运用特定 的函数,得到结果

• 使用groupby方法进行分组计算,得到分组对象GroupBy

• 语法为df.groupby(by=)

• 分组对象GroupBy可以运用描述性统计方法, 如count、mean 、
median 、 max和min等

# 对一个变量进行分组
Group = loan_info.groupby(by ='product’) 
#对多个变量进行分组
group1= loan_info.groupby(by =['product','jgmc’]) 

Group.mean() 
Group.sum() 
Group.max()
 

2、聚合函数的使用

• 对分组对象使用agg聚合函数

• Groupby.agg(func)

• 针对不同的变量使用不同的统计方法

#对分组后对象,计算均值和最值等
grouped.agg([np.mean,np.max]).head(20)

#对2个变量分别计算不同的统计量
grouped.agg({'ye':np.mean,'dkje':np.max})

#也可以直接对数据进行汇总
loan_info[['dkje','ye','yqje']].agg([np.sum,np.mean])

3、分组对象与apply函数

• 函数apply即可用于分组对象,也可以作用于dataframe数据

• Groupby.apply(func)

• 需要注意axis=0和axis=1的区别

#相当于计算每列的均值 
loan_info.apply(np.sum,axis = 0) 

# 相当于计算每行的总和 
loan_info['sum'] =loan_info.apply(np.sum,axis=1) 

#计算两个变量 的差值
loan_info[[‘dkje’,‘ye’]].apply(lambda x:x[0] - x[1],axis = 1) 

4、透视图与交叉表

在数据分析中,数据透视表是常见的工具之一,需要根据行或列对数据 进行各个维度数据的汇总,在pandas中,提供了相关函数解决此类问题 ,交叉表更多用于频数的分析

数据透视表

pivot_table( data, index,columns,values, aggfunc, fill_value, margins, margins_name=’’ )

Index : 行分组键

columns: 列分组键

values: 分组的字段,只能为数值型变量

aggfunc: 聚合函数

margins: 是否需要总计

margins_name: 总计名称

fill_value: 设置缺失值

pd.pivot_table(data=df,index='Year',values='Global_Sales',aggfunc=np.mean,margins=True,margins_name='总计’)
pd.crosstab(index = df['Platform'],columns=df['Genre'],margins=True)

交叉表用于计算分组频率

pd.crosstab(index,columns,normalize)

Index: 行索引

Columns: 列索引

Normalize: 数据对数据进行标准化,index表示行,column表示列

pd.pivot_table(data=df,index='Year',values='Global_Sales',aggfunc=np.mean,margins=True,margin s_name='总计’) 
pd.crosstab(index = df['Platform'],columns=df['Genre'],margins=True)
 

记录自:python数据清洗实战—Peter老师

发布了29 篇原创文章 · 获赞 7 · 访问量 1201

猜你喜欢

转载自blog.csdn.net/weixin_44390462/article/details/105311323
今日推荐