在前面的代码后面增加city列,并使用count函数进行计数。相当于Excel中的countifs函数的功能 #对筛选后的数据按city列进行计数 df_inner.loc[(df_inner['city'] != 'beijing'), ['id','city','age', 'category','gender']].sort(['id']).city.count()
还有一种筛选的方式是用query函数
#使用query函数进行筛选 df_inner.query('city == ["beijing", "shanghai"]')在前面的代码后增加price字段和sum函数。对筛选后的price字段
进行求和,相当于Excel中的sumifs函数的功能。 #对筛选后的结果按price进行求和 df_inner.query('city == ["beijing", "shanghai"]').price.sum() 12230 数据汇总
Excel中使用分类汇总和数据透视可以按特定维度对数据进行汇总,Python中使用的主要函数是groupby和pivot_table。
1.分类汇总
#对所有列进行计数汇总 df_inner.groupby('city').count()/ #对特定的ID列进行计数汇总 df_inner.groupby('city')['id'].count() city beijing 2 guangzhou 1 shanghai 2 shenzhen 1 Name: id, dtype: int64 #对两个字段进行汇总计数 df_inner.groupby(['city','size'])['id'].count() city size beijing A 1 F 1 guangzhou A 1 shanghai A 1 B 1 shenzhen C 1 Name: id, dtype: int64还可以对汇总后的数据同时按多个维度进行计算
#对city字段进行汇总并计算price的合计和均值。 df_inner.groupby('city')['price'].agg([len,np.sum, np.mean])2.数据透视
Python中通过pivot_table函数实现同样的效果 #设定city为行字段,size为列字段,price为值字段。 分别计算price的数量和金额并且按行与列进行汇总。 pd.pivot_table(df_inner,index=["city"],values=["price"],columns=[ "size"],aggfunc=[len,np.sum],fill_value=0,margins=True) 数据统计
1.数据采样
Excel的数据分析功能中提供了数据抽样的功能
Python通过sample函数完成数据采样 #简单的数据采样 df_inner.sample(n=3)
Weights参数是采样的权重,通过设置不同的权重可以更改采样的结果 #手动设置采样权重 weights = [0, 0, 0, 0, 0.5, 0.5] df_inner.sample(n=2, weights=weights)
Sample函数中参数replace,用来设置采样后是否放回 #采样后不放回 df_inner.sample(n=6, replace=False) #采样后放回 df_inner.sample(n=6, replace=True)
2.描述统计
Python中可以通过Describe对数据进行描述统计
#数据表描述性统计 df_inner.describe().round(2).T3.相关分析
Python中则通过corr函数完成相关分析的操作,并返回相关系数。 #相关性分析 df_inner['price'].corr(df_inner['m-point']) 0.77466555617085264 #数据表相关性分析 df_inner.corr()