笔记
目录
前言
掌握python的groupby分类统计函数
掌握python数据聚合方法
掌握python的Apply函数用法
掌握python数据透视表与交叉表
掌握python数据采样方法
一、Groupby分类统计
1.按列分组
按列分组分为以下三种模式
第一种: df.groupby(col),返回一个按列进行分组的groupby对象第
二种:df.groupby([col1,col2]),返回一个按多列进行分组的groupby对象;
第三种: df.groupby(col1)[col2] 或者 df[col2].groupby(col1),两者含义相同,返回按列col1进行分组后col2的值;
#数据集为第十一届泰迪杯b题数据
import pandas as pd
database=pd.read_csv('../data/order_train2.csv')#导入数据
#第一
a=database.groupby('sales_region_code')
#第二
b=database.groupby(['sales_region_code','second_cate_code'])
#第三
c=database.groupby('sales_region_code')['ord_qty']
groupby对象不能直接打印输出,可以调用list函数显示分组,还可以对这个对象进行各种计算
2.遍历各分组
对于多重键的情况,元组的第一个元素将会是由键值组成的元组
for i in :
print(i)
当然,你可以对这些数据片段做任何操作。有一个你可能会觉得有用的运算将这些数据片段做成一个字典
pieces = dict(list(a))
print(pieces)
pieces['101']
groupby默认是在axis=0上进行分组的,通过设置也可以在其他任何轴上进行分组。拿上面例子中的database来说,我们可以根据dtype对列进行分组
grouped=database.groupby(database.dtypes, axis=1)
可以如下打印分组
for i,j in grouped:
print(i)
print(j)
二、数据聚合
聚合指的是任何能够从数组产生标量值的数据转换过程,下表是经过优化的groupby方法:
函数名 |
说明 |
count |
分组中非NA值的数量 |
sum |
非NA值的和 |
mean |
非NA值的平均值 |
median |
非NA值的算数中位数 |
std、var |
无偏标准差和方差 |
min、max |
非NA值的最小值和最大值 |
prod |
非NA值的积 |
first、last |
第一个和最后一个非NA值 |