老板让我处理上百个表格,最终我选择了Python自动化办公处理!

简介: 老板让我处理上百个表格,最终我选择了Python自动化办公处理!

1. 提出需求

这是群里面一位朋友提出的一个需求,具体需求是啥样的?我这里随意模拟出来两张表为大家解读一下。

image.png

对于上述的a表和b表,我们最终的目的就是:将a,b表中id相同的数据,写入一个sheet;a表中独有的id行写入一个sheet;b表中独有的id行写入一个sheet。


需要注意以下两点:

① 最终目的是创建一个工作簿,存放三个sheet表;

② 对于id相同的a,b两表,他们的姓名也是不同的,因此存放id相同的那张表,应该是3列。


2. 知识点讲解

为了解决这个问题,我们需要先讲述几个知识点,只有掌握了这几个知识点,解决这个问题将会变得灰常简单。


1)pd.merge()

这是Pandas中用于多表连接的函数,相当于Excel中的vlookup()函数,又相当于MySQL中的a join b on a.id = b.id内连接。


import pandas as pd
df1 = pd.read_excel("a.xlsx")
df2 = pd.read_excel("b.xlsx")
pd.merge(df1,df2,on="id")


结果如下:

image.png


2)pd.ExcelWriter()

ExcelWriter是pandas下面的一个类,里面有两个参数,一个是路径参数Path,一个是时间格式化参数datetime_format。


① ExcelWriter的两个作用

Ⅰ设置datetime的输出格式;

Ⅱ在一个工作簿中写入多个sheet表;


② 如何使用ExcelWriter

Ⅰ 构造数据


import pandas as pd
from datetime import datetime
df1 = pd.DataFrame(
    {
        "日期":[datetime(2020,7,1),datetime(2020,7,2)],
        "销售额":[10,20]
    }
)
df2 = pd.DataFrame(
    {
        "日期":[datetime(2020,8,1),datetime(2020,8,2)],
        "销售额":[15,25]
    }
)


结果如下:

image.png


Ⅱ ExcelWriter用法如下


# 如果不指定datetime_format参数,你可以试试最终效果。
with  pd.ExcelWriter("销售额.xlsx",datetime_format="YYYY-MM-DD") as writer:
    df1.to_excel(excel_writer=writer,sheet_name="1月",index=None)
    df2.to_excel(excel_writer=writer,sheet_name="2月",index=None)


结果如下:

image.png


3. 解决办法

有了上述的基础以后,我这里直接给出本文的代码,估计你看了就能学会的。

import pandas as pd
import os
# 指定路径
excel_name = os.getcwd() + "\\d.xlsx"
# 读取数据
df1 = pd.read_excel("a.xlsx")
df2 = pd.read_excel("b.xlsx")
# a,b表中共有的
df_a_b = pd.merge(df1,df2,on="id")
# a表独有的
df_a = df1[~df1["id"].isin(df2["id"])]
# b表独有的
df_b = df2[~df2["id"].isin(df1["id"])]
with  pd.ExcelWriter(excel_name) as writer:
    df_a.to_excel(excel_writer=writer,sheet_name="df_a",index=None)
    df_b.to_excel(excel_writer=writer,sheet_name="df_b",index=None)
    df_a_b.to_excel(excel_writer=writer,sheet_name="df_a_b",index=None)


结果如下:

image.png

相关文章
|
2月前
|
Web App开发 存储 前端开发
Python+Selenium自动化爬取携程动态加载游记
Python+Selenium自动化爬取携程动态加载游记
|
5月前
|
机器学习/深度学习 数据采集 API
Python自动化解决滑块验证码的最佳实践
Python自动化解决滑块验证码的最佳实践
|
6月前
|
SQL 自然语言处理 数据库
【Azure Developer】分享两段Python代码处理表格(CSV格式)数据 : 根据每列的内容生成SQL语句
本文介绍了使用Python Pandas处理数据收集任务中格式不统一的问题。针对两种情况:服务名对应多人拥有状态(1/0表示),以及服务名与人名重复列的情况,分别采用双层for循环和字典数据结构实现数据转换,最终生成Name对应的Services列表(逗号分隔)。此方法高效解决大量数据的人工处理难题,减少错误并提升效率。文中附带代码示例及执行结果截图,便于理解和实践。
151 4
|
2月前
|
数据采集 人工智能 API
推荐一款Python开源的AI自动化工具:Browser Use
Browser Use 是一款基于 Python 的开源 AI 自动化工具,融合大型语言模型与浏览器自动化技术,支持网页导航、数据抓取、智能决策等操作,适用于测试、爬虫、信息提取等多种场景。
544 4
推荐一款Python开源的AI自动化工具:Browser Use
|
2月前
|
Python
Python 办公实战:用 python-docx 自动生成 Word 文档
本文详解如何使用 python-docx 库实现 Word 文档自动化生成,涵盖环境搭建、文档创建、格式设置、表格与图片处理、模板填充、批量生成及性能优化等实战技巧,助你高效完成办公场景中的文档自动化任务。
652 1
|
2月前
|
数据采集 存储 监控
Python爬虫自动化:定时监控快手热门话题
Python爬虫自动化:定时监控快手热门话题
|
2月前
|
Web App开发 人工智能 数据可视化
猫头虎 推荐:国产开源AI工具 爱派(AiPy)|支持本地部署、自动化操作本地文件的AI办公神器
爱派(AiPy)是一款国产开源AI工具,支持本地部署与自动化操作,助力数据处理与办公效率提升。基于Python Use理念,AiPy让AI直接控制本地文件,简化繁琐任务,提供高效智能的解决方案,适用于数据工程师、分析师及日常办公用户。
720 0
|
2月前
|
安全 数据库 数据安全/隐私保护
Python办公自动化实战:手把手教你打造智能邮件发送工具
本文介绍如何使用Python的smtplib和email库构建智能邮件系统,支持图文混排、多附件及多收件人邮件自动发送。通过实战案例与代码详解,帮助读者快速实现办公场景中的邮件自动化需求。
202 0
|
2月前
|
前端开发 安全 Java
办公自动化必修课:用Python打造PDF全能处理工具
在职场中,PDF处理常令人崩溃:拆分、合并、加密等问题严重影响效率。本文教你用Python打造一个包含拆分、合并、加密、水印四大功能的PDF工具箱,通过实战代码提升办公自动化水平,让文档操作像拼乐高一样简单高效。
111 0
|
4月前
|
数据采集 存储 前端开发
Python爬虫自动化:批量抓取网页中的A链接
Python爬虫自动化:批量抓取网页中的A链接

推荐镜像

更多