利用python汇总统计多张Excel

为什么越来越多的非程序员白领都开始学习 Python ?他们可能并不是想要学习 Python 去爬取一些网站从而获得酷酷的成就感,而是工作中遇到好多数据分析处理的问题,用 Python 就可以简单高效地解决。本文就通过一个实际的例子来给大家展示一下 Python 是如何应用于实际工作中高效解决复杂问题的。

背景

小明就职于一家户外运动专营公司,他们公司旗下有好多个品牌,并且涉及到很多细分的行业。小明在这家公司任数据分析师,平时都是通过 Excel 来做数据分析的。今天老板丢给他一个任务:下班前筛选出集团公司旗下最近一年销售额前五名的品牌以及销售额。

对于 Excel 大佬来说,这不就是分分钟的事吗?小明并没有放在眼里,直到市场部的同事将原始的数据文件发给他,他才意识到事情并没有那么简单:

这并不是想象中的排序取前五就行了。这总共有90个文件,按常规的思路来看,他要么将所有文件的内容复制到一张表中进行分类汇总,要么将每张表格进行分类汇总,然后再最最终结果进行分类汇总。

想想这工作量,再想想截止时间,小明挠了挠头,感觉到要渐渐头秃。

思路分析

这种体力活,写程序解决是最轻松的啦。小明这时候想到了他的程序员好朋友小段,于是他把这个问题抛给了小段。

小段缕了下他那所剩无几的头发,说:so easy,只需要找潘大师即可。

小明说:你搞不定吗?还要找其他人!

小段苦笑说:不不不,潘大师是 Python 里面一个处理数据的库,叫 Pandas ,俗称 潘大师。

小明说:我不管什么大师不大师,就说需要多久搞定。

小段说:给我几分钟写程序,再跑几秒钟就好了!

小明发过去了膜拜大佬的表情。

小段略微思考了下,整理了一下程序思路:

  • 计算每张表每一行的销售额,用“访客数 * 转化率 * 客单价”就行。
  • 将每张表格根据品牌汇总销售额。
  • 将所有表格的结果汇总成一张总表
  • 在总表中根据品牌汇总销售额并排序

编码

第零步,读取 Excel :

import pandas as pd

df = pd.read_excel("./tables/" + name)

第一步,计算每张表格内的销售额:

df['销售额'] = df['访客数'] * df['转化率'] * df['客单价']

第二步,将每张表格根据品牌汇总销售额:

df_sum = df.groupby('品牌')['销售额'].sum().reset_index()

第三步,将所有表格的结果汇总成一张总表:

result = pd.DataFrame()
result = pd.concat([result, df_sum])

第四步,在总表中根据品牌汇总销售额并排序:

final = result.groupby('品牌')['销售额'].sum().reset_index().sort_values('销售额', ascending=False)

最后,我们来看看完整的程序:

import pandas as pd
import os

result = pd.DataFrame()

for name in os.listdir("./tables"):
  try:
    df = pd.read_excel("./tables/" + name)
    df['销售额'] = df['访客数'] * df['转化率'] * df['客单价']
    df_sum = df.groupby('品牌')['销售额'].sum().reset_index()
    result = pd.concat([result, df_sum])
  except:
    print(name)
    pass

final = result.groupby('品牌')['销售额'].sum().reset_index().sort_values('销售额', ascending=False)
pd.set_option('display.float_format', lambda x: '%.2f' % x)
print(final.head())

最后的结果是这样的:

品牌  销售额
15 品牌-5 1078060923.62
8 品牌-17 1064495314.96
4 品牌-13 1038560274.21
3 品牌-12 1026115153.00
13 品牌-3 1006908609.07

可以看到最终的前五已经出来了,整个程序运行起来还是很快的。

几分钟之后,小段就把结果给小明发过去了,小明感动得内牛满面,直呼改天请吃饭,拜师学艺!

总结

本文主要是想通过一个实际的案例来向大家展示潘大师(Pandas)的魅力,特别是应用于这种表格处理,可以说是太方便了。写过程序的可能都有点熟悉的感觉,这种处理方式有点类似于 SQL 查询语句。潘大师不仅能使我们的程序处理起来变得更简单高效,对于需要经常处理表格的非程序员也是非常友好的,上手起来也比较简单。

示例代码:https://github.com/JustDoPython/python-examples/tree/master/xianhuan/pandasexcel

以上就是利用python汇总统计多张Excel的详细内容,更多关于python汇总统计多张Excel的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python matplotlib读取excel数据并用for循环画多个子图subplot操作

    读取excel数据需要用到xlrd模块,在命令行运行下面命令进行安装 pip install xlrd 表格内容大致如下,有若干sheet,每个sheet记录了同一所学校的所有学生成绩,分为语文.数学.英语.综合.总分 考号 姓名 班级 学校 语文 数学 英语 综合 总分 ... ... ... ... 136 136 100 57 429 ... ... ... ... 128 106 70 54 358 ... ... ... ... 110.5 62 92 44 308.5 画多张子图需要

  • 利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)

    前言 做数据分析的时候通常我们并不是对真个excel文件进行操作,换言之,每一列都是一个特征,我们需要针对分析.遇到这类问题的时候,我们通常想得到一列中所有符合条件的数据,挑出来,然后组成一个单独的文件进行分析.比如一列中我们希望找到所有大于100的所有行,又比如 我们希望得到一列中包含某个特定字母的所有行,那么我们应该怎么办呢,这里就说一下. 在这之前我们先介绍一个pandas里面一个函数 loc() 英文解释是这样的:Purely label-location based indexer f

  • Python pandas对excel的操作实现示例

    最近经常看到各平台里都有Python的广告,都是对excel的操作,这里明哥收集整理了一下pandas对excel的操作方法和使用过程.本篇介绍 pandas 的 DataFrame 对列 (Column) 的处理方法.示例数据请通过明哥的gitee进行下载. 增加计算列 pandas 的 DataFrame,每一行或每一列都是一个序列 (Series).比如: import pandas as pd df1 = pd.read_excel('./excel-comp-data.xlsx');

  • Python读取Excel一列并计算所有对象出现次数的方法

    第一种方法 import pandas as pd from collections import Counter data = '参赛信息.xlsx' data = pd.read_excel('参赛信息.xlsx') # 导入参赛信息 x_pandas_list = data[u'专业1'] # 专业情况 list = list(x_pandas_list) c = Counter(list) print(c) 输出形式 Counter({'自动化学院': 164, '高分子科学与工程学院'

  • python转化excel数字日期为标准日期操作

    伙伴遇到一个关于excel导入数据到python中,日期变成数字而不是日期格式的问题.第一反应这个数字应该是excel里面的时间戳类似的,所以我就实验增加一天是不是对应的数字就加1.最后证明了我的想法,这样就可以倒推excel里面的数字日期是从那一年开始计数的. 我们先看一下excel本身打开数据的样子: 我们再看看python直接导入后日期的样子: 那我们的目标就是将字段列名的日期数据替换成标准的日期格式,具体的思路是: 1.先用excel实验2018-11-02对应的日期时间戳是43406.

  • Python如何爬取b站热门视频并导入Excel

    代码如下 #encoding:utf-8 import requests from lxml import etree import xlwt import os # 爬取b站热门视频信息 def spider(): video_list = [] url = "https://www.bilibili.com/ranking?spm_id_from=333.851.b_7072696d61727950616765546162.3" html = requests.get(url, h

  • 解决python pandas读取excel中多个不同sheet表格存在的问题

    摘要:不同方法读取excel中的多个不同sheet表格性能比较 # 方法1 def read_excel(path): df=pd.read_excel(path,None) print(df.keys()) # for k,v in df.items(): # print(k) # print(v) # print(type(v)) return df # 方法2 def read_excel1(path): data_xls = pd.ExcelFile(path) print(data_x

  • Python自动创建Excel并获取内容

    用到了两个库,xlrd和xlwt xlrd是读excel,xlwt是写excel的库[/code] 1)xlwd用到的方法: xlwt.Workbook()是创建了一个空文件对象 .add_sheet()为空文件对象,是在该文件中建立一个工作表,并返回工作表对象 .write(row,col,data)为工作表对象,表示在第row+1行第col列添加data数据 .save('文件名.xls')为空文件对象,最后保存. 2)xlrd用到的方法: 打开excel文件读取数据 data = xlrd

  • 利用python汇总统计多张Excel

    为什么越来越多的非程序员白领都开始学习 Python ?他们可能并不是想要学习 Python 去爬取一些网站从而获得酷酷的成就感,而是工作中遇到好多数据分析处理的问题,用 Python 就可以简单高效地解决.本文就通过一个实际的例子来给大家展示一下 Python 是如何应用于实际工作中高效解决复杂问题的. 背景 小明就职于一家户外运动专营公司,他们公司旗下有好多个品牌,并且涉及到很多细分的行业.小明在这家公司任数据分析师,平时都是通过 Excel 来做数据分析的.今天老板丢给他一个任务:下班前筛

  • 利用python将图片转换成excel文档格式

    前言 本文主要介绍了关于利用python将图片转换成excel文档的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实现步骤 读取图像,获取图像每个像素点的RGB值: 根据每个像素点的RGB值设置excel每个方格的颜色值: 根据像素点的坐标,写入excel文件: 保存退出: 示例代码 from PIL import Image import numpy as np import time import matplotlib.pyplot as plt import

  • 利用python Pandas实现批量拆分Excel与合并Excel

    一.实例演示 1.将一个大Excel等份拆成多个Excel 2.将多个小Excel合并成一个大Excel并标记来源 work_dir="./course_datas/c15_excel_split_merge" splits_dir=f"{work_dir}/splits" import os if not os.path.exists(splits_dir): os.mkdir(splits_dir) 二.读取源Excel到Pandas import pandas

  • 利用Python将txt文件录入Excel表格的全过程

    目录 Python将txt文件录入Excel python 获取一大段文本之间两个关键字之间的内容 总结 我们的手头有一个写满数据的txt文件,如何将它录入Excel表格呢? Python将txt文件录入Excel  调用python中专门用于处理Excel表格的函数库 xlwt,建议大家打开CMD输入 pip3 install xlwt 检查一下是否安装了这个函数库.没安装的会自动安装. 建一个python文件,库调用,主函数,自定义函数都先写好 import xlwt def writein

  • 如何利用Python快速统计文本的行数

    ​​通常我们会用wc -l来统计文件行数,不过用Python统计也很简单. 要快速统计一个文本文件中的行数,其实就是要统计这个文本文件中换行符的个数.为了尽量提高速度,我们需要尽量多读一些文本然后一起处理.统计换行符的个数可以用bytes内置的count方法. 代码如下: from __future__ import print_function import time if __name__ == '__main__': import sys start = time.time() with

  • 利用Python中xlwt模块操作excel的示例详解

    目录 一.安装 二.创建表格并写入 三.设置单元格样式 四.设置单元格宽度 五.设置单元格背景色 六.设置单元格内容对齐方式 七.单元格添加超链接 八.单元格添加公式 九.单元格中输入日期 十.合并行和列 十一.单元格添加边框 一.安装 pip install xlwt 二.创建表格并写入 import xlwt # 创建一个workbook并设置编码 workbook = xlwt.Workbook(encoding = 'utf-8') # 添加sheet worksheet = workb

  • 利用Python第三方库xlrd读取Excel中数据实例代码

    目录 1. 安装 xlrd 库 2. 使用 xlrd 库 2.1 打开 Excel 工作表对象 2.2 读取单个单元格数据 2.3 读取多个单元格数据 2.3 读取所有单元格数据 附:行.列操作 3. 总结 1. 安装 xlrd 库 Python 读取 Excel 中的数据主要用到 xlrd 第三方库.xlrd 其实就是两个单词的简化拼接,我们可以把它拆开来看,xl 代表 excel, rd 代表 read, 合并起来就是 xlrd, 意思就是读 excel 的第三方库. 这种命名风格也正是我们

  • 利用Python实现读取Word表格计算汇总并写入Excel

    目录 前言 一.首先导入包 二.读评价表所在的目录文件 三.读word文件,处理word中的表格数据 四.统计计算 五.将统计计算结果写入汇总Excel 完整代码 总结 前言 快过年了,又到了公司年底评级的时候了.今年的评级和往常一下,每个人都要填写公司的民主评议表,给各个同事进行评价打分,然后部门收集起来根据收集上来的评价表进行汇总统计.想想要收集几十号人的评价表,并根据每个人的评价表又要填到Excel中进行汇总计算统计给出每个人的评价,就头大.虽然不是个什么难事,但是是个无脑的细致活.几十个

  • 利用python对Excel中的特定数据提取并写入新表的方法

    最近刚开始学python,正好实习工作中遇到对excel中的数据进行处理的问题,就想到利用python来解决,也恰好练手. 实际的问题是要从excel表中提取日期.邮件地址和时间,然后统计在一定时间段内某个人在某个项目上用了多少时间,最后做成一张数据透视表(这是问题的大致意思). 首先要做的就是数据提取了,excel中本身有一个text to column的功能,但是对列中规律性不好的数据处理效果很差,不能分割出想要的数据,所以我果断选择用python来完成. 要用的库一个是对excel读写处理

  • Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例

    本文实例讲述了Python实现读写sqlite3数据库并将统计数据写入Excel的方法.分享给大家供大家参考,具体如下: src = 'F:\\log\\mha-041log\\rnd-log-dl.huawei.com\\test' # dst = sys.argv[2] dst = 'F:\\log\\mha-041log\\rnd-log-dl.huawei.com\\test\\mha-041log.db' # dst_anylyzed = sys.argv[3] dst_anylyze

随机推荐