python处理Excel,从此爱上python
off999 2025-05-15 20:23 2 浏览 0 评论
python能干的事情太多,对于小白来说,只能望洋生叹,不过不要灰心, 看看我是如何使用python 处理Excel 的,你就能理解python 的简单和高效。
一、Excel文件
1、文件路径
F:/product_demo.xls
2、文件内容(原始数据)
二、常用的Excel处理诉求
1、分类汇总
2、筛选
3、产品出入库汇总
三、使用python实现上述诉求。
分类汇总:
- 成品入库数据分类汇总,python代码:
import pandas as pd # 导入pandas包,简写为pd
df = pd.read_excel(r"F:\product_demo.xls", sheet_name="成品入库") #读入原始数据
df.fillna(0, inplace=True) # 处理excel中的空值
df = df[['product', 'description', 'small_bag', '小袋数量']] #选择要进行分类汇总的列
df.rename(columns={'小袋数量': '入库'}, inplace=True) #重命名列标题
list1 = ['product', 'description', 'small_bag'] #设置分类汇总的依据
list2 = ['入库'] #设置汇总的字段
df = df.groupby(list1)[list2].sum() #分类汇总
df.reset_index(inplace=True, drop=False) #重置索引
df['description']=df['description'].astype(str) #设置字段类型
df
运行上述代码,即可得到汇总结果,如下图所示:
- 成品出库产品数据分类汇总
依葫芦画瓢写python代码:
import pandas as pd
df = pd.read_excel(r"F:\product_demo.xls", sheet_name="成品出库")
df.fillna(0, inplace=True)
df = df[['product', 'description', '包装类型', '发货', '实销', '其他出库']]
df.rename(columns={'实销': '出库'}, inplace=True)
list1 = ['product', 'description', '包装类型']
list2 = ['出库', '其他出库']
df = df.groupby(list1)[list2].sum()
df.reset_index(inplace=True, drop=False)
df['description']=df['description'].astype(str)
df
运行上述代码,即可得到汇总结果,如下图所示:
筛选客户
python代码:
import pandas as pd4
df = pd4.read_excel(r"F:\product_demo.xls", sheet_name="成品出库")
df.fillna(0, inplace=True)
df = df[['customer', 'product', 'description', '包装类型', '发货', '调货', '退货', '实销', '其他出库', '运费']]
list1 = ['customer', 'product', 'description', '包装类型']
list2 = ['发货', '调货', '退货', '其他出库', '运费']
df = df.groupby(list1)[list2].sum()
df.reset_index(inplace=True, drop=False)
df['description']=df['description'].astype(str)
customer_name=input("请输入要查询的客户名称:")
df = df[df['customer'] == customer_name]#设置筛选条件
df
运行上述代码后,会提示用户输入要查询的客户名称,输入后(这里以输入客户高树友为例说明)即可得到结果,如下图:
产品出入库汇总
思路:先分别对成品入库和成品出库数据分类汇总,再将两张表的内容合并到一起即可。
python和数据库一样,有连表的功能,就是把工作表以某种合适的方式连接起来再操作。
python代码:
import pandas as pd3
df1 = pd3.read_excel(r"F:\product_demo.xls", sheet_name="成品入库")
df2 = pd3.read_excel(r"F:\product_demo.xls", sheet_name="成品出库")
df1.fillna(0, inplace=True)
df2.fillna(0, inplace=True)
df1 = df1[['product', 'description', 'small_bag', '小袋数量']]
df2 = df2[['product', 'description', '包装类型', '实销', '其他出库']]
df1['description']=df1['description'].astype(str)
df2['description']=df2['description'].astype(str)
df1.rename(columns={'小袋数量': '入库'}, inplace=True)
df2.rename(columns={'实销': '出库'}, inplace=True)
list1 = ['product', 'description', 'small_bag']
list2 = ['入库']
df1 = df1.groupby(list1)[list2].sum()
df1.reset_index(inplace=True, drop=False)
list3 = ['product', 'description', '包装类型']
list4 = ['出库', '其他出库']
df2 = df2.groupby(list3)[list4].sum()
df2.reset_index(inplace=True, drop=False)
df3 = pd3.merge(df1, df2, how='outer', left_on=['product', 'description', 'small_bag'],#连接两表的语句。
right_on=['product', 'description', '包装类型'])
df3.fillna(0, inplace=True)
df3['库存'] = df3['入库'] - df3['出库'] - df3['其他出库']
df3 = df3[df3.index != 0]
list5 = ['product', 'description', 'small_bag', '入库', '出库', '其他出库', '库存']
df3 = df3[list5]
df4 = pd3.pivot_table(df3, index=['product', 'description', 'small_bag'],
values=['入库', '出库', '其他出库', '库存'], aggfunc=sum, margins=True)
col_order = ['入库', '出库', '其他出库', '库存']
df4 = df4.reindex(col_order, axis=1)
df4
运行结果,如下图:
学会了上述几个使用python处理Excel 数据的方法,就可以举一反三,就可以一劳永逸。
你还说你不爱python吗?
相关推荐
- Python如何操作Excel,xlrd和xlwt类库的使用
-
xlrd和xlwt类库简介xlrd和xlwt是Python中两个用于处理Excel文件的类库。xlrd用于读取Excel文件,xlwt用于写入Excel文件。这两个类库可以在Python中方便地处理E...
- 操作Excel,Python根本打不过VBA
-
很开心今天把一个与财务有关的Excel取数计算方面的项目收尾了。这次项目使用的是ExcelVBA语言开发。作为一名Python语言使用者,经历过这次项目开发后,更加坚定了Python根本不可能动摇V...
- 个人用户将Excel接入DeepSeek的详细步骤指南
-
个人用户将Excel接入DeepSeek的详细步骤指南,无需复杂编程基础,提供多种实现方式:一、准备工作:获取DeepSeekAPI密钥1.注册DeepSeek账号-访问[DeepSeek官网...
- Python通过win32库操控Excel实战指南
-
Python通过win32库操控Excel实战指南。同学们,我是张老师。今天给大家讲的是Python通过win32库操控Excel实战指南。今天课的主要内容有:易开发、环境配置、二Excel基础操作实...
- 如何在Excel中直接使用DeepSeek的功能
-
在Excel中直接使用DeepSeek的功能(如AI模型能力),目前需通过间接集成方式实现,因为DeepSeek并未提供官方的Excel插件。以下是两种常用方法:方法1:通过API调用集成(推荐)若D...
- Python自动化:xlrd读取excel
-
#pipinstallxlrd工作簿、工作表相关操作:importxlrd#打开工作簿people=xlrd.open_workbook('people1.xls')...
- Python自动化:openpyxl读取excel,补充了些内容
-
打开工作簿,选择工作表importopenpyxl#打开已有工作簿wb=openpyxl.load_workbook('example1.xlsx')#sheetna...
- Python自动化:openpyxl读取excel
-
#pipinstallopenpyxl工作簿、工作表相关操作:importopenpyxl#打开已有工作簿wb=openpyxl.load_workbook('example...
- Java的优势:跨平台只是一部分
-
以下讨论只针对PC端和移动端。Java最大的优势真的在于跨平台吗?以前是,但现在已经不是了。有跨平台需求的仅仅是客户端应用,而不是服务端。例如桌面应用,你的客户可能是Windows用户,也可能是Lin...
- 都2023年了,为什么大家还都在吹捧 Python?
-
2023年,Python还可学吗?答案当然是可。近些年间,Python的火热有目共睹,作为一种功能强大的高级编程语言,在2018年的时候它的流行程度就得到了大幅提高。入门人工智能有很多种选择...
- Python编程语言的优势有哪些?
-
1.简单易学:Python采用极简主义设计思想,语法简单优雅,不需要很复杂的代码和逻辑,即可实现强大的功能。这使得Python很适合初学者学习,可以帮助初学者快速入门。2.开源免费:Python所有内...
- Python操作Excel库xlrd与xlwt常用操作详解
-
来源:早起Python作者:刘早起大家好,我是早起。在之前的Python办公自动化系列文章中,我们已经相信介绍了openyxl、xlsxwriter等Python操作Excel库。openpyxl操作...
- python处理Excel,从此爱上python
-
python能干的事情太多,对于小白来说,只能望洋生叹,不过不要灰心,看看我是如何使用python处理Excel的,你就能理解python的简单和高效。一、Excel文件1、文件路径F:/...
- 软件测试|Python操作Excel制作报表,不要太方便
-
前言今天我们介绍的是Python操作Excel制作报表,我们需要用到的库是openpyxl,我们主要使用的功能有下列几个功能插入与查询数据分类数据统计数据可视化字体颜色修改基本操作表格初始数据如下图所...
- python笔记52:python操作excel
-
主要内容:小目标:掌握excel模块主要内容:excel相关模块,openpyxl安装使用如果看完这篇文章,你还是弄不明excel相关操作;你来找我,我保证不打你,我给你发100的大红包。1.ex...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (54)
- python安装路径 (54)
- python类型转换 (75)
- python进度条 (54)
- python的for循环 (56)
- python串口编程 (60)
- python写入txt (51)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python字典增加键值对 (53)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python qt (52)
- python人脸识别 (54)
- python斐波那契数列 (51)
- python多态 (60)
- python命令行参数 (53)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- centos7安装python (53)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)