对比Excel,学习pandas数据透视表
Excel中做数据透视表
选中整个数据源;
依次点击插入数据透视表
选择在Excel中的哪个位置,插入数据透视表
然后根据实际需求,从不同维度展示结果
结果如下
pandas用pivottable做数据透视表
1)语法格式pd。pivottable(data,indexNone,columnsNone,
valuesNone,aggfuncmean,
marginsFalse,marginsnameAll,
dropnaTrue,fillvalueNone)
2)对比excel,说明上述参数的具体含义
参数说明:
data相当于Excel中的选中数据源;
index相当于上述数据透视表字段中的行;
columns相当于上述数据透视表字段中的列;
values相当于上述数据透视表字段中的值;
aggfunc相当于上述结果中的计算类型;
margins相当于上述结果中的总计;
marginsname相当于修改总计名,为其它名称;
下面几个参数,用的较少,记住干嘛的,等以后需要就百度。
dropna表示是否删除缺失值,如果为True时,则把一整行全作为缺失值删除;
fillvalue表示将缺失值,用某个指定值填充。
案例说明
1)求出不同品牌下,每个月份的销售数量之和
在Excel中的操作结果如下
在pandas中的操作如下dfpd。readexcel(rC:Users黄伟Desktoppivottable。xlsx)
display(df。sample(5))
df。insert(,月份,df〔销售日期〕。apply(lambdax:x。month))
display(df。sample(5))
df1pd。pivottable(df,index品牌,columns月份,
values销售数量,aggfuncnp。sum)
display(df1)
结果如下:
2)求出不同品牌下,每个地区、每个月份的销售数量之和
在Excel中的操作结果如下
在pandas中的操作如下dfpd。readexcel(rC:Users黄伟Desktoppivottable。xlsx)
display(df。sample(5))
df。insert(,月份,df〔销售日期〕。apply(lambdax:x。month))
display(df。sample(5))
df1pd。pivottable(df,index品牌,columns〔销售区域,月份〕,
values销售数量,aggfuncnp。sum)
display(df1)
结果如下:
3)求出不同品牌不同地区下,每个月份的销售数量之和
在Excel中的操作结果如下
在pandas中的操作如下dfpd。readexcel(rC:Users黄伟Desktoppivottable。xlsx)
display(df。sample(5))
df。insert(,月份,df〔销售日期〕。apply(lambdax:x。month))
display(df。sample(5))
df1pd。pivottable(df,index〔品牌,销售区域〕,columns月份,
values销售数量,aggfuncnp。sum)
display(df1)
结果如下:
4)求出不同品牌下的销售数量之和与货号计数
在Excel中的操作结果如下
在pandas中的操作如下dfpd。readexcel(rC:Users黄伟Desktoppivottable。xlsx)
display(df。sample(5))
df。insert(,月份,df〔销售日期〕。apply(lambdax:x。month))
display(df。sample(5))
df1pd。pivottable(df,index品牌,columns月份,
values〔销售数量,货号〕,
aggfunc{销售数量:sum,货号:count},
marginsTrue,marginsname总计)
display(df1)
结果如下:
晚上好,我是小五