python数据分析交叉表crosstab运用实践

差不多把《利用Python进行数据分析》这本书看完了,但一直没怎么使用python进行过实践,最近刚好有一个处理大的exl表的工作需要,便开始使用python的交叉表函数crosstab解决工作中实际遇到的问题。

工作需求

表头如下:

总共有10多张表,每张表有1000多行,需要做的是:每个省份各来源渠道的分布以及每个销售经理各来源渠道的分布。
其实这个一个一个统计也是可以完成的,但因为数据量非常多,估计要花上1天的时间,但如果用python,即便是不熟练的情况下,1个小时左右就可以统计出来。

python代码

  1. 导入pandas
import pandas as pd
  1. 对于有多个sheet的表格用pd.ExcelFile先读取
xls=pd.ExcelFile('examples/客户列表2021-01-19 16_08_10.xls') #文件路径换成自己的
exchanges = xls.sheet_names  #获取sheet表列表
print(exchanges)
  1. 循环读取每个sheet表,并存入变量中
listings = [] #空变量,用于存各个sheet表的数据
for exchange in exchanges:
    listing = pd.read_excel(xls, sheet_name=exchange,skiprows=1)
    listing['Exchange'] = exchange  # 将表名加入数据中
    listings.append(listing)
  1. 合并listings中的所有数据
listing_data = pd.concat(listings) #合并
listing_data.info() #查看数据
  1. 每个省份各来源渠道的分布
sf=pd.crosstab(listing_data.所属省份,listing_data.来源,margins=True) #crosstab交叉表函数
sf.to_excel(r'sf.xlsx') #保存至sf.xlsx表
  1. 每个销售经理各来源渠道的分布
xs=pd.crosstab(listing_data.销售经理,listing_data.来源,margins=True)
xs.to_excel(r'xs.xlsx')

关于作者

杰夫(jerfo0)

一个活的真实,耿直的boy。
坚定相信爱情,向往自由,对世界充满好奇心。热爱美剧、海贼王、一切户外运动、旅行...
职业:互联网运营。
生命不息,折腾不止,燥起来!!

查看全部帖子

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注