'''
数据透视表:是在行,列上同时拆分
python中数据透视表的方法是pivit_table()方法
pivit_table()方法参数如下:
pivit_table(data,values = None,index = None,columns = None,aggfunc = 'mean',fill_value = None,margins = False,dropna = True, margins_name = 'All)
data:表示要做数据透视表的整个表
values:对应excel中值的那个框
index:对应excel中值的那个框
columns:对应excel中值的那个框
aggfunc:表示对values的计算类型
fill_value:表示对空值的填空值
margins:表示是否显示合计列
dropna:表示是否删除缺失,如果为真时,则把一整行全作为缺失值删除
margins_name:表示合计列的列名
'''
import pandas as pd;
df = pd.read_excel('/Users/caizhengjie/Desktop/数据4.xlsx')
print(df)
# 将客户分类作为index,区域作为columns,用户ID作为values,对values执行count运算
print(pd.pivot_table(df,values='用户ID',index='客户分类',columns='区域',aggfunc='count'))
# 显示合计列
print(pd.pivot_table(df,values='用户ID',index='客户分类',columns='区域',aggfunc='count',margins=True))
# margins_name合计列的列名修改
print(pd.pivot_table(df,values='用户ID',index='客户分类',columns='区域',aggfunc='count',margins=True,margins_name='总计'))
# 通过fill_value对空值的填空值
print(pd.pivot_table(df,values='用户ID',index='客户分类',columns='区域',aggfunc='count',margins=True,margins_name='总计',fill_value=0))
# aggfunc示对values的计算类型
print(pd.pivot_table(df,values=['用户ID','7月销量'],index='客户分类',columns='区域',aggfunc={'用户ID':'count','7月销量':'sum'},margins=True,margins_name='总计'))
# 对透视表的结果重置索引
print(pd.pivot_table(df,values='用户ID',index='客户分类',columns='区域',aggfunc='count').reset_index())