Python报表需求处理示例

news2024/12/23 13:34:57

        单一文件下,相关主题的共128张字段结构相似的表,对一种需求用Excel手工编辑相当麻烦,下面介绍一种python做自动化报表示例及代码流程。

每张表均有相同的字段结构,因此可对该文件下所有表格同时操作,大大提高了计算效率。 

 

 报表案例

import pandas as pd
import os

1、 案例背景

筛选出2023年销售额总额的品牌以及对应的销售额。

  • 专注于户外运动的巨头公司。公司旗下有20个品牌,每个品牌都涉及128个类目(行业)。

  • 做一张汇总报表,包含2023年销售总额排名前五的品牌以及对应的销售额。

业务部门的同事总共发来了128张表。

  • 每张表里是一个细分行业的数据。

  • 每张表都以月的维度,从2022年1月到2023年12月,时间跨度为2年,记录着每个品牌的日期、访客数、客单价、转化率、所属类目(细分行业)等数据。

2、 单个表格

导入并预览数据
name = '睡袋&睡袋.xlsx'
data_dir = '/root/data/'
df = pd.read_excel(data_dir+name,parse_dates=[0])
df.head()
日期筛选
# 转换为时间列
df['日期']= pd.to_datetime(df['日期'])
df.info()
# 提取2023年数据
df['年份'] = df['日期'].dt.year
df_2023 = df[df['年份']==2023]
df_2023
数据计算
# 计算每个表的销售额
df_2023['销售额'] = df_2023['访客数']*df_2023['转化率']*df_2023['客单价']
# 统计每个品牌的全年销售额
df_sum = df_2023.groupby('品牌')['销售额'].sum().reset_index()
# name ='睡袋睡袋,xlsx'
df_sum['行业']=name.replace( '.xlsx','')

3、批量处理(总代码块)

# 导包
import pandas as pd
import os
# 定义路径
data_dir ='D:/Yuanman/day01/02_代码/data/report/'
# 创建一个空白的DF用来保存结果
result_df = pd.DataFrame() 
# 循环遍历文件夹
for name in os.listdir(data_dir):
    # 读取文件
    df = pd.read_excel(data_dir + name,parse_dates=[0])
    # 转化为日期格式
    df['日期']= pd.to_datetime(df['日期'])
    # 提取年份添加为新列
    df['年份']= df['日期'].dt.year
    # 提取2023年的数据
    df_2023 = df[df['年份']==2023]
    # 计算每个表的销售额
    df_2023['销售额'] = df_2023['访客数']*df_2023['转化率']*df_2023['客单价']
    # 统计每个品牌的全年销售额
    df_sum = df_2023.groupby('品牌')['销售额'].sum().reset_index()
    #name ='睡袋睡袋,xlsx'
    df_sum['行业']=name.replace( '.xlsx','')
    # 拼接表作为结果表
    result_df = pd.concat([result_df,df_sum])
# 将结果表再次按品牌分类求总销售额 并降序
final_df = result_df.groupby('品牌')['销售额'].sum().reset_index().sort_values('销售额',ascending= False)
# 保存到某位置
final_df.to_excel('G:/卧槽.xlsx',index=False)

运行后则会在指定路径下创建128张结果合并后的表,也可以实现指定路径,在结尾调用即可。

对应结果显示以各品牌分组的销售总额,如下图显示。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1812294.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Milvus 2.4 向量库安装部署

1、linux 已有docker环境 2、安装fio命令 yum install -y fio 2、mkdir test-data fio --rwwrite --ioenginesync --fdatasync1 --directorytest-data --size2200m --bs2300 --namemytest ctrlc 3、lscpu 4、docker -v 6、安装docker compose组件 yum -y install python3-…

万字长文讲解如何快速搭建一个Spring Cloud项目

文章目录 概念基本概念微服务七大组件 初始化Maven父工程整合注册中心组件整合远程调用与负载均衡组件组件整合网关组件整合配置中心组件以gateway模块为例 整合分布式事务组件操作数据库模拟创建订单和扣减库存整合Seata 整合熔断降级组件整合链路追踪组件源码地址参考来源 概…

Rust : windows下protobuf和压缩传输方案

此前dbpystream库是用python开发 web api。今天在rust中试用一下protobuf。 本文关键词:编译器、protobuf、proto文件、序列化、zstd压缩,build。 一、 protobuf编译器下载 具体见相关文章。没有编译器,protobuf无法运行。 windows参见&am…

多年不见,我美少女又回来了!

各位,可能很多人都不记得我了,上学的时候喜欢记学习笔记,好多学弟学妹们经常来我的博客看笔记,对于学习也有帮助。 时过境迁,生活中的琐事和繁忙的工作,真的自顾不暇… 还记得之前说要转型给大家分享内容运…

量产导入 | DFT和ATE概述

什么是DFT DFT(Design for Test),即可测性设计。 一切为了芯片流片后测试所加入的逻辑设计,都叫DFT。 DFT只是为了测试芯片制造过程中有没有缺陷,而不是用来验证芯片功能的,芯片功能的完善应该应该是在芯片开发过程用先进验证方法学去做的。 芯片制造过程相当复杂,工艺缺陷…

LabVIEW程序内存泄漏分析与解决方案

维护他人编写的LabVIEW程序时,若发现程序运行时间越长,占用内存越大直至崩溃,通常是内存泄漏导致的。本文从多角度分析内存泄漏的可能原因,包括数组和字符串处理、未释放的资源、循环中的对象创建等,并提供具体的解决方…

SamSung PM9B1 1TB性能实测

** SamSung PM9B1 1TB性能实测 ** 一颗主控一颗NAND FLASH 单面器件布局,PMIC集成电源芯片DC\DC模组 PCIE Gen4.0X4 性能3673MB2954MB 工作状态功耗4.1w左右,待机状态功耗1.2W左右 全盘读速度2000MB左右 H2缓内速度1.2G H2缓外速度730MB H2读速度1.3G …

牛客little w and Discretization

玩一下样例发现,只要找到mex就可以知道有((1-mex)的值)所在的位置离散化后和原本的值是一样的,所以询问区间的长度-(1-mex)有几个值就是答案,数据范围3e5,莫队值域分块求区间mex,计算1-mex有几个位置属于这…

mmdeploy环境部署流程

参考:mmdeploy/docs/zh_cn/01-how-to-build/linux-x86_64.md at main open-mmlab/mmdeploy (github.com) 从零入门《openmmlab》mmdeploy[1]环境安装及简单上手_哔哩哔哩_bilibili 我的环境: docker容器,ubuntu20.04,cuda11.7…

迁移学习助力机器学习实践应用

大家好,迁移学习是一种技术,能使机器利用从以前任务中获得的知识来提高对新任务的泛化能力。作为ChatGPT和Google Gemini等模型的核心原理,迁移学习在长文档总结、复杂文章撰写、旅行规划以及诗歌和歌曲创作等重要任务中发挥着关键作用。 本…

Docker 安装gitLab

目录 1. 安装 Docker 2. 拉取 GitLab 镜像 3. 创建并运行 GitLab 容器 4. 登录GitLab 修改下载地址 修改账号密码 前言-与正文无关 生活远不止眼前的苦劳与奔波,它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中,我们往往容易…

解决关于git clone 带子模块的项目得到的源码不完整,导致编译失败的解决办法

在使用 git 克隆一个项目的时候,你可能会碰到克隆后编译失败的情况,经过查找,发现原来是缺少一些文件,这些文件都有一个特点,如图: 要解决这个问题,需要在clone 命令的基础上加上一些参数 &…

Nature Communications|基于离子导电和强力蚕丝纤维的智能感知纺织品 (柔性智能织物/可穿戴电子/柔性纤维传感/柔性电子)

2024年4月17日,清华大学张莹莹教授(Yingying Zhang)课题组,在《Nature Communications》上发布了一篇题为“Intelligent perceptual textiles based on ionicconductive and strong silk fibers”的论文。论文内容如下: 一、 摘要 将纺织品赋予感知功能,类似于人类皮肤,…

Linux--08---挂载分区

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.查看系统磁盘分区情况1.lsblk 查看2.fdisk -l 2.挂载未分区磁盘1. 创建分区2. 格式化分区3. 创建挂载点4. 挂载分区5. 更新 /etc/fstab6.验证挂载 3.修改挂载的磁…

0.18微米 BCD 工艺兼容的准垂直功率 DMOS 器件结构参数对 RON,sp 的影响

来源:Influence of Structure Parameters on the RON,sp of Quasi-Vertical Power DMOS Compatible with 0.18μm BCD Process(ISPSD 24年) 摘要 “Lateral double-diffused MOSFET (LDMOS)是应用于功率电子领域最常见的器件之一,得益于其可…

【论文】2405.Phased Consistency Model(港中文提出了AI绘画加速模型,一步采样生成图像,支持SD1.5,SDXL)

论文:https://arxiv.org/abs/2405.18407 (2024.05.30发布) 代码:https://github.com/G-U-N/Phased-Consistency-Model 一、论文要解决什么问题?效果如何? (需要先了解LCM模型) (阶段性一致性模型:朝着稳定…

express入门02静态资源托管

目录 1 搭建静态资源结构2 代码助手3 多目录托管4 服务器热启动总结 上一篇我们讲解了使用express搭建服务器的过程,服务器搭建好了之后,除了在地址栏里输入URL发起get请求或者post请求外,通常我们还需要访问静态资源,比如html、c…

一文看懂linux ext4文件系统工作原理

前言 Linux系统中的ext2、ext3、ext4 文件系统,它们都有很强的向后和向前兼容性,可以在数据不丢失的情况下进行文件系统的升级。目前ext4是一个相对较成熟、稳定且高效的文件系统,适用于绝大部分规模和需求的Linux环境。 ext4它突出的特点有&…

修改SubVI的LabVIEW默认搜索路径

在启动顶级VI后&#xff0c;LabVIEW可能会遇到找不到subVI的情况。这通常是由于subVI的路径发生了变化或没有被正确配置。 LabVIEW默认搜索路径 默认情况下&#xff0c;LabVIEW会按以下顺序搜索文件位置&#xff08;*表示LabVIEW将搜索子目录&#xff09;&#xff1a; <t…

PS系统教程15

仿制图章与修饰照片 仿制图章工具使用&#xff08;S&#xff09;使用方法&#xff1a;按住Alt键进行采样选定照片新建图层&#xff08;方便修改&#xff09;按住Alt键&#xff0c;进行吸取进行采样复制 下面那个石柱是我们复制的石柱 多余的部分用历史画笔工具涂抹掉一部分 案…