太秀了!用Pandas秒秒钟搞定24张Excel报表,还做了波投放分析!

【数据分析】用pandas处理财务报表 面对繁多的报表,如何从中快速的选取需要的字段,并按照一定规则加以计算,是工作中经常遇到的问题。本文记录了用pandas处理excel财务报表并加以计算的全过程。 目标 从财务报表中(此项目中为excel文件)的资产负债表中筛选出资产总计、所有者权益的期初数与期末数,和利润表中营业总收入、已赚保费的期初数和当年累计,并计算同比和环比情况,写入新的excel中。 导入数据 通常财务数据报表文件数目较多,且每个文件中包含多个sheet。此项目中的源数据文件按照年、月储存在根目录下。 观察.. 阅读详情

大家好,我是菜鸟哥!

最近有不少粉丝问我关于Python批量操作Excel的问题。

大家的关注点主要是如何循环遍历表格、如何用Pandas批量处理,当然,还有在996的压迫下如何提效(来挤出更多摸鱼时间)。

为此,我特意肝了几天,用基于实际业务的脱敏数据,以完整小项目的形式,来集中解决这些问题。

我的Pandas实战系列老传统,完整案例代码和数据源,已经打包好放在文末,顺便剧透文末还有送书活动。

项目背景

不吹牛集团这几年孵化了50个品牌,在各渠道做了大量品宣层面的曝光。现在集团首席吹牛官提了两个需求:

1. 要一张大表,包含每个月搜索人数TOP5的品牌相关数据,以及对应品牌在当月的搜索份额和排名。

2. 在现有数据基础上,找到最近一年投放效果还不错的品牌,要吹吹牛,做年度表彰。

这是小z特别准备的两个具有代表性的需求:

  • 第一种:业务方已经定好了条条框框,需要数据分析师做的是取数和处理的工作,这样的“分析”工作,坑往往在于取数和清洗的复杂性。

  • 第二种:业务方自己想了个模糊的方向,需要分析师结合实际数据,定逻辑,给建议。

数据预览

话音未落,集团首席吹牛官的跟屁虫就把相关源数据丢过来了

一共24张Excel表格,按月存储,涵盖了从2019年1月到2020年12月的数据。

表格内部数据大同小异:

注:点击人数和支付人数,都是在搜索人数基础上统计的

每张表都有50个品牌,包括了品牌名、品牌搜索人数、点击人数和对应的支付人数这几个关键字段。

源数据就是这样简简单单中又透漏着麻麻烦烦,接下来,我们就开始手撕需求。

项目一:Python批量操作

开始动手前,我们要明确需求。

再回顾一下首席吹牛官的第一个需求:要一张大表,包含每个月搜索人数TOP5品牌的相关数据,以及对应品牌在当月的搜索份额和排名。

提炼:在现有源数据的基础上,我们还需要对各品牌月内按搜索人数排序,然后计算每个品牌搜索份额,取其前5,最后遍历汇总。

自动化之哥曾经说过:Python批量操作Excel,无论表格再多,处理逻辑再复杂,只要我们集中力量击破一张,就能够实现批量操作的全面胜利。

首先,我们要解决的是单张表的问题。

按搜索人数排序:

调用rank快速给到对应的排名:

再来计算搜索份额,搜索份额的计算公式:单品牌搜索人数/所有品牌搜索人数汇总,用Pandas计算,怎一个easy了的!

正当我们准备批量执行操作,首席吹牛官发来了消息:

“需求一略有调整,投资人最关注的是凌云这个品牌,要求在汇总表中,每个月凌云品牌的相关指标排在最前面,后面跟着搜索排名TOP5的品牌”。

具体排名逻辑如图所示:

面对需求的临时改动,见过大风大浪的我们内心没有一丝波澜,甚至还有一点想笑。小事一桩,改改Pandas逻辑就好了。

先找到目标品牌凌云:

再按照顺延的逻辑,定位TOP5品牌相关数据:

合并即可获取我们想要的结果:

单表操作完成,批量操作,只需要建立好循环+合并关系,并引入日期列,在合并结果中对不同的表数据做好区分:

result = pd.DataFrame()


for name in os.listdir():
    df = pd.read_excel(name)
    df = df.sort_values('品牌搜索人数',ascending = False)
    df['搜索人数排名'] = df['品牌搜索人数'].rank(ascending = False)
    df['搜索份额'] = df['品牌搜索人数'] / df['品牌搜索人数'].sum()
    
    brand = '凌云'
    brand_data = df.loc[df['品牌'].str.find(brand) != -1,:]
    
    other = df.loc[df['品牌'].str.find(brand) == -1,:]
    other_top5 = other.iloc[:5,:]
    data = pd.concat([brand_data,other_top5])
    data['日期'] = name[4:-5]
    
    result = pd.concat([result,data])

Pandas批量操作,就是如此丝滑~

第一个需求搞定。

项目二:品牌投放分析

还记得那个明(che)确(dan)的需求二吗?

“在现有数据基础上,找到最近一年投放效果还不错的品牌,要吹吹牛,做年度表彰。”

首席吹牛官以成本数据过于机密为由,除了说各品牌费用基本无差别之外,没有透露任何关于成本方面的数据,我们自然也无法计算投放ROI了这些核心指标了。

目前能够拿到的,只有品牌、搜索人数、点击人数和对应支付人数这几个指标。

要找到最近一年投放效果还不错的品牌,我们可以用漏斗思维,从量级(人数)和效率(转化率)两个角度来考虑:

在费用无差别的情况下:

  • 人群基数大(搜索人数),表示投放的心智效果不错,让更多用户被广告触达后,在平台主动搜相关的品牌。

  • 搜索-点击转化率高,代表了搜索结果的精准度,搜索后展示页面的吸引力等等

  • 点击-支付转化率高,更可能受产品详情页面、活动力度等影响

在项目二场景中,三个指标越高越好。接下来,我们就结合搜索人数,搜索-点击转化率和点击-支付转化率,用Pandas做一波分析。

要对最近一年的数据做分析,我们先把2020年所有数据合并,拿到汇总表:

再按品牌的维度,做指标汇总:

计算对应的搜索-点击转化率,点击-支付转化率:

基础数据齐活了!

从仅有的head5数据可以看到,双敏品牌以160万的搜索人数独占鳌头,但是!排名第二的九方,虽然搜索人数少了40多万,却能凭借较高的搜索-点击转化率和点击-支付转化率,在支付人数上远超双敏,成为支付之王。

表格太晦涩,我们画个图吧:

注:因为分析背景是无差别投放,搜索人数重要性非常高,为了可视化简洁清晰,我们简单粗暴的筛选TOP15品牌来绘图

气泡大小代表着品牌搜索人数量级

根据气泡图,我们按照搜索-点击转化率和点击-支付转化率的高低划分了4个区间:

  • 区间1:高搜索-点击转化,高点击-支付转化

  • 区间2:低搜索-点击转化,高点击-支付转化

  • 区间3:低搜索-点击转化,低点击-支付转化

  • 区间4:高搜索-点击转化,低点击-支付转化

再结合数据表,看的更加清晰:

结果显而易见,高搜索量级的品牌,主要呈现出两种形态:

  • 以双敏(排名第1)、巨奥(排名第3)为代表的品牌主要分布在第三区间,量级较大,但两种转化效率均需要进一步提升,品牌没能较好的承接蜂拥而至的流量。

  • 九方(排名第2)、商软(排名第4)则是高搜索量级、高转化效率的代表,从现有数据看,他们才是不吹牛集团学习的榜样。

正当我们准备把这一步结果同步给首席吹牛官,顺便探讨进一步的数据分析方向,比如结合支付人数的金额贡献、留存率、LTV,以及引入两年增速的维度,结合业务动作来定位深层原因。

没想到首席吹牛官发来了这样的消息:

“第二个需求我可能没说清楚,这次不仅是表彰,也是给融资机构秀肌肉的一部分,我们关注的只是品牌声量,对应的就是品牌搜索人数这个指标,你汇总好排个序就好”

我们每个人会说超过5种语言的脏话,但在这个场景,大部分人只能条件反射般的打出这8个字:

“嗯嗯,好的,马上给到”

实例故事告一段落,上述数据维度和验证角度,大家可以做更多的探索。

最后推荐一下我们的星球:由菜鸟学Python原班人马建了一个投资星球,汇聚一批喜欢投资的朋友一起分享投资的技巧,不限于基金,股票等其他品种,提高自己的财商,一起读书打卡,欢迎加入。





推荐阅读:入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|年度爆款文案1).卧槽!Pdf转Word用Python轻松搞定!2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 4).80行代码!用Python做一个哆来A梦分身 5).你必须掌握的20个python代码,短小精悍,用处无穷 6).30个Python奇淫技巧集 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 8).再见Python!我要学Go了!2500字深度分析!9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片点阅读原文,领廖雪峰资料!
Excel数字密码:从神秘序列到可读日期的转换法则 本文揭秘Excel中数字与日期格式转换的奥秘,详细解析了从神秘序列如'43983'到可读日期的转换法则。通过基准日期、时间小数表示等核心概念,结合Python代码示例,帮助用户高效处理金融报表、数据分析中的日期问题,提升Excel格式转换的准确性与效率。 阅读详情

相关推荐

工业负荷数据分析实战:从数据清洗到预测模型构建

在工业互联网与智能制造领域,时序数据分析是挖掘生产潜力的核心技术。其原理在于通过采集设备运行数据,运用数据清洗、特征工程等方法,将原始信号转化为可解释的信息。这项技术的核心价值在于实现生产过程的透明化管理与能效优化,广泛应用于能耗成本分析、设备预测性维护及生产智能调度等场景。本文以工厂小时级负荷数据为具体载体,深入探讨了如何利用特征工程构建强解释性特征,并基于LightGBM模型实现精准的负荷预测,为工业数据分析实践提供了从原理到落地的完整路径。

weixin_34409357的博客 311

用Python自动生成Excel数据报表!

所以今天就带大家来实战一波,使用Python自动化生成数据报表! 从一条条的数据中,创建出一张数据报表,得出你想要的东西,提高效率。 主要使用到pandas、xlwings以及matplotlib这几个库。 先来看一下动态的GIF,都是程序自动生成。

m0_59162248的博客 3995

pandas处理excel报表

这只是使用pandas对excel报表操作而已。可以学习,用来处理大量表格汇总数据。不能100%满足大众需求,so,学习下就好了

Pandas透视表大揭秘:从基础到高级技巧的完整指南

在数据处理和分析中,Pandas是一个强大的Python库,提供了丰富的功能来处理和转换数据。其中,透视表(Pivot Table)是一项非常有用的功能,可以帮助我们轻松地对数据进行汇总和分析。在本文中,我们将深入探讨Pandas中的透视表基础,并通过实战案例演示如何使用`pivot_table`函数进行数据分析。

一键难忘的博客 4364

pandas-accounting:使用Pandas建立财务报表模型的库

熊猫会计 熊猫财务报表建模库

立创开源:基于STM32F103与ADS1256的六维力传感器低成本实现方案

本文详细介绍了一种基于STM32F103微控制器与ADS1256高精度ADC的低成本六维力传感器实现方案。该方案通过3D打印的六梁弹性体结构结合应变片,将多维力信号转换为电信号,并由24位ADC进行高精度采集。文章涵盖了硬件选型、电路设计、嵌入式软件驱动及上位机数据可视化全流程,为机器人、精密测量等领域的爱好者提供了一个可复现的开源实践参考。

weixin_34718952的博客 396

Python自动化办公 :如何实现报表自动化?

第一步是对要做的报表进行步骤拆解,这个步骤拆解和用不用工具或者是用什么工具没有直接关系,比如做报表的第一步一般都是收集数据,这个数据可能是线下人员记录在纸质笔记本上的,也可能是存储在Excel表里面的,还有可能是存储在数据库里面的。上面只是得到了各指标的同环比绝对数值,但是我们一般的日报在发出去之前都要做一些格式调整的,比如调整字体之类的。第二步是去想第一步里面涉及到的每一个具体步骤对应的代码实现方式,一般都是去找对应每一步的代码,比如导入数据的代码是什么样的,再比如重复值删除的代码是什么样的。

m0_59596937的博客 1527

今天出一个candence 17.4 allego的安装教程

7、安装完成,接下来进行补丁更新,找到Hotfix_SPB17.40.035_wint.iso软件 ,右击鼠标选择装载。6、因为之前选择的定制安装,这一步不知道具体要安装啥,因此都勾选,点击NECK,接下来等待安装完成。后面经过仔细对比,发现是前面更新补丁时选择了F盘,F盘是candence安装包,不是补丁。8、在破戒大师里选择安装更新补丁,并找到刚才装载的安装包里的程序,点击下一步。3、打开破戒大师,找到安装candence进行如下图选择,点击下一步。有耐心的人可以重新卸了再装一边,我就不卸了,直接装。

hcvinh的博客 2727

Python数据分析:手把手教你用Pandas生成可视化图表

数据可视化是数据分析很重要的一部分,它能帮助我们更好的从繁杂的数据中更直观更有效的获取信息。Pandas是Python的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。下面,我们总结一下PD库的一些使用方法和入门技巧。对于pandas的内置数据类型,Series 和 DataFrame 都有一个用于生成各类图表的 plot 方法。默认情况下,它们所生成的是线性图。

m0_74942241的博客 364

Arduino DHT11 ESP8266 在OneNet云平台上读取 温湿度

#include "ESP8266.h" #include "dht11.h" #include "SoftwareSerial.h" #define SSID "540ND" #define PASSWORD "" #define HOST_NAME "api.heclouds.com" #define DEVICE_ID "" #define HOST_PORT (80) String APIKey = " "; #define INTER

weixin_45852947的博客 2430

机械臂TCP标定实战:从四点法到六点法的精度跃迁

本文详细解析机械臂TCP标定技术,从基础的四点法到高精度的六点法实现精度跃迁。通过工具坐标系与基坐标系的转换原理,结合实战案例展示六点法如何将装配合格率提升至99.5%,并分享环境控制、操作技巧等提升标定精度的关键要素。

weixin_29038345的博客 899

用Pandas秒秒钟搞定24张Excel报表,还做了波投放分析!

如何循环遍历表格、如何用Pandas批量处理,当然,还有在996的压迫下如何提效(来挤出更多摸鱼时间)。 为此,我特意肝了几天,用基于实际业务的脱敏数据,以完整小项目的形式,来集中解决这些问题。 我的Pandas实战系列老传统,完整案例代码和数据源,已经打包好放在文末,顺便剧透文末还有送书活动。 项目背景 不吹牛集团这几年孵化了50个品牌,在各渠道做了大量品宣层面的曝光。现在集团首席吹牛官提了两个需求: 1. 要一张大表,包含每个月搜索人数TOP5的品牌相关...

weixin_46737755的博客 411

AI大模型开发——transformer模型超全完整版(0基础可懂)

为了更深入的了解transformer模型,我们首先从transformer的诞生聊起吧。transformer在2017年由Vaswani等人首次提出,它摒弃了之前流行的循环神经网络和卷积神经网络的架构,引入了自注意力机制( Self-Attention),显著提高了处理序列数据的能力和效率。transformer模型的这种设计使其在处理长距离依赖问题时, 相比于传统的循环神经网络和长短期记忆网络(LSTM)表现得更加出色,至此, 开启了NLP技术的新篇章。

m0_74922316的博客 2121

Pandas读取Excel日期数据的异常处理

作者:小小明 异常描述 有时我们的Excel有一个调整过自定义格式的日期字段: 当我们用pandas读取时却是这样的效果: 不管如何指定参数都无效。 出现原因 没有使用系统内置的日期单元格格式,自定义格式没有对负数格式进行定义,pandas读取时无法识别出是日期格式,而是读取出单元格实际存储的数值。 解决方案:修改自定义格式 可以修改为系统内置的自定义格式: 或者在自定义格式上补充负数的定义: 增加;@即可 pandas直接解析Excel数值为日期 有时这种Excel很多,我们需要通过pa.

小小明-代码实体的专栏 2万+

【YOLOv8全方位学习手册】第四章 数据增强:从扩充数据到塑造模型的认知边界

"""使用 Albumentations 做自定义增强,兼容 YOLO 格式"""])# 转成 numpy# boxes 必须是 [[x_min,y_min,x_max,y_max], ...]# 在数据加载时调用你可以把集成到 PyTorch 的 Dataset 类里,或使用 Ultralytics 自带的DataLoader。

VectorShift的博客 213

YOLOv8改进 | Conv篇:基于FasterBlock与C2f结构的二次创新,参数量下降70万【附保姆级代码】

通过引入FasterBlock二次创新C2f结构,我们成功地对YOLOv8模型进行了优化,显著降低了其参数量,并提升了推理速度,而精度保持不变甚至有所提升。该模型在多个实际应用场景中展现出了优异的性能,尤其是在嵌入式设备、移动端和自动驾驶等领域,具有广泛的应用潜力。未来的研究将进一步优化模型结构,探索更多的应用场景,为目标检测技术的发展做出贡献。

一键难忘的博客 3216

用Python写了个OEE计算工具:每天2小时→5秒(附完整代码)

【摘要】作者因每天手动计算设备综合效率(OEE)耗时2小时且易出错,开发了一个Python自动化工具。该工具使用Pandas处理MES系统导出的CSV数据,自动计算可用率、性能率和质量率三个OEE指标,并生成包含异常设备标记的Excel报表。核心功能包括:多设备批量分析、自动汇总统计(平均/最高/最低OEE)、低于85%OEE的设备预警。通过dataclass封装计算逻辑,代码结构清晰,执行时间从2小时缩短至5秒。未来计划增加邮件告警、趋势分析和根因诊断功能。文末提供了完整可运行的代码(Python3.9+

开发这点事儿 | 半导体智能制造与工业软件实战分享 236

Vue 前端导出页面A4大小pdf,Vue前端导出pdf自动切割换页不切割内容 Vue导出页面pdf自动分页和添加页码 导出的pdf提高清晰度

【代码】Vue 前端导出页面A4大小pdf,Vue前端导出pdf自动切割换页不切割内容 Vue导出页面pdf自动分页和添加页码 导出的pdf提高清晰度。

weixin_41346436的博客 1800

【用 Python 自动处理进销存 Excel,分发给每个门店只需 1 秒钟】

用 Python 自动处理进销存 Excel,分发给每个门店只需 1 秒钟

weixin_47139678的博客 738

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Python蟒蛇书笔记+自己笔记

1.2 列表 [,] 列表 [] 是有序,可变集合,set {} 是无序集合,索引从0开始。 索引是负数表示从右开始,最右的个索引是-1 、、、 等修改列表的方法,返回的都是 。 my_list.sort()原地排序,永久改变,无返回值 sorted(my_list)不改变my_list,有返回值 1.3 元组 tuple (,) 元组是一种不可变的、有序的数据集合。使用小括号 定义,元素用逗号 隔开。 核心对比(列表 vs 元组): 列表 :可变(增删改),速度慢,用于动态数据。 元

异侠 410

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

TI ADS8350 ADC评估套件实战:从硬件解析到性能测试全指南

模数转换器(ADC)是连接模拟世界与数字系统的核心桥梁,其性能直接决定了数据采集的精度与可靠性。ADC的工作原理是将连续的模拟信号离散化、量化,转换为微处理器可处理的数字码。高精度ADC的技术价值在于实现微弱信号的准确捕捉与数字化,是工业自动化、精密测量和仪器仪表等领域的关键。评估ADC的动态性能(如信噪比SNR、总谐波失真THD)和静态精度,是硬件设计中的重要环节。德州仪器(TI)的ADS8350EVM-PDK评估套件提供了一个完整的软硬件平台,集成了高性能双通道SAR ADC、精密参考电压源和信号调理电

jardownload的博客 624

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

非标设备物联网落地:从工业孤岛到数字生命体

非标设备指缺乏统一通信协议、标准数据接口和远程管理能力的定制化工业装备,广泛应用于新能源、汽车、医疗等关键产线。其联网本质是构建可感知、可计算、可进化的数字孪生体,需突破物理层信号采集、边缘实时处理、平台业务闭环与数据驱动决策四层技术栈。通过硬件级信号捕获、轻量边缘AI、故障根因定位(RCA)引擎及OEE深度拆解等手段,实现停机预警、备件智能调度与工艺参数优化。该方案直击响应滞后、备件黑洞与知识断层三大运维死循环,已成为设备制造商交付能力的硬门槛和用户采购决策的否决项。

weixin_34192816的博客 602
上一篇: 超全的 100 个 Pandas 函数汇总,建议收藏
下一篇: 张一鸣的大学四年收获及工作感悟
菜鸟学Python
博客等级 码龄9年 8087粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值