python办公自动化----使用pandas和os合并多个订单表

发布于:2025-07-09 ⋅ 阅读:(16) ⋅ 点赞:(0)

系列文章目录

python办公自动化–数据可视化(pandas+matplotlib)–生成条形图和饼状图
python办公自动化–数据可视化(pandas+matplotlib)–生成折线图
python办公自动化–数据可视化(pandas读取excel文件,matplotlib生成可视化图表)
python办公自动化-openpyxl学习-工资表生成工资条
python办公自动化–使用将csv大文件分割为xlsx小文件

前言

小伙伴们大家好呀,今天我们来更新一期使用python合并多个订单表的文章。
很多时候我们会遇到这样的问题,领导给我们一个有很多的excel表格的文件夹,每个表格里面放的是一个月的订单数据,如下图所示
在这里插入图片描述
现在领导让我们统计2024年美国地区的总销量,大家想一下该怎么做呢?这里大致有两种思路:
1.逐个打开每一个excel表格,统计每个月美国地区的销量,再将它们合并到一起
2.打开全部的表格,并新建一个空白的excel工作簿,将每个表格中美国地区的订单提取出来,放进新建的工作簿中,然后统计销量

不论大家采取上面哪一种方法,都需要一个一个打开这些表格进行统计,而且即便今天你统计完了美国的数据交给了领导,明天他又要你统计英国地区的销售额,那你是不是又得来一遍。
今天教大家一招,学会以后像这样的工作任务可以秒解,话不多说,直接开始。

一、简单的代码实现

import pandas as pd
import os

all_data=pd.DataFrame()
filepath=r"C:\Users\Admin\Desktop\2024年订单"

for file in os.listdir(filepath):

    if file.endswith(".xlsx"):
        filename=os.path.join(filepath,file)
        df1=pd.read_excel(filename)
        all_data=pd.concat([all_data,df1],ignore_index=True)
        print("正在处理:",file)

print("数据合并完成" )
all_data.to_excel(r"C:\Users\Admin\Desktop\2024年订单\2024年订单合并.xlsx",index=False)
print("数据成功保存")

下面我们来逐步分解上面的代码

1.首先我们导入需要用到的库:pandas和os

import pandas as pd
import os

2.然后我们新建一个表个:all_data,用来放我们合并的数据,同时我们用filepath来表示我们这些表格所在的文件夹

all_data=pd.DataFrame()
filepath=r"C:\Users\Admin\Desktop\2024年订单"

3.接下来,我们遍历"2024订单"这个文件夹里面所有的文件,如果它是以.xlsx结尾,那么我们就将他的名字和文件夹的路径进行拼接,得到它的绝对地址。什么意思呢,比如你的c盘有一个文件夹叫做“游戏数据”,这个文件夹里面有一个表叫做‘缓存数据.xlsx’,那么这个表该怎么表示呢,是不是C:\游戏数据\缓存数据.xlsx,这里同样就是将文件夹的路径和表格的名字进行结合,然后得到在计算机中这些表格的绝对位置。
然后我们再将这些数据一个个放进all_data这个空表中

for file in os.listdir(filepath):
    if file.endswith(".xlsx"):
        filename=os.path.join(filepath,file)
        df1=pd.read_excel(filename)
        all_data=pd.concat([all_data,df1],ignore_index=True)
        print("正在处理:",file)
print("数据合并完成" )

4.最后,我们将all_data.xlsx这个表保存到2024订单这个文件夹中,并且把表格的名字改为2024订单合并.xlsx

all_data.to_excel(r"C:\Users\Admin\Desktop\2024年订单\2024年订单合并.xlsx",index=False)
print("数据成功保存")

我们在pycharm上运行上面代码后,会如下图所示
在这里插入图片描述
然后我们再次打开2024订单这个文件夹后,发现里面多了一个文件,如下图所示:
在这里插入图片描述

二、代码的修改和完善

1.打开的订单表继续统计

上面我们将2024年的12个订单表成功合并,没有报错,那么如果我们运行代码的时候,有一两个表格打开过呢?这时候我们就需要加上这样一行代码来补充:

    if file.startswith('~$'):
        continue

2.将合并后的订单放进新的文件夹

有时候我们想把合并后的表格放进新的文件夹,因为这样便于查找,那么我们需要加上下面的代码:

filepath2=r"C:\Users\Admin\Desktop\2024年订单\订单合并"
if not os.path.exists(filepath2):
    os.makedirs(filepath2)
    print("创建目录成功")
else:
    print("目录已存在")

3.更改后的代码

import pandas as pd
import os
os.chdir(r'C:\Users\Admin\Desktop\2024年订单')
all_data=pd.DataFrame()
filepath=r"C:\Users\Admin\Desktop\2024年订单"

country=str(input("请输入国家代码:"))

for file in os.listdir(filepath):
    if file.startswith('~$'):
        continue
    if file.endswith(".xlsx"):
        filename=os.path.join(filepath,file)
        df1=pd.read_excel(filename)
        df2=df1[df1["Country Code (Shipping)"]==country]
        all_data=pd.concat([all_data,df1],ignore_index=True)
        print("正在处理:",file)

print("数据合并完成" )
filepath2=r"C:\Users\Admin\Desktop\2024年订单\订单合并"
if not os.path.exists(filepath2):
    os.makedirs(filepath2)
    print("创建目录成功")
else:
    print("目录已存在")
filename2=os.path.join(filepath2,"2024年订单合并.xlsx")
all_data.to_excel(filename2,index=False)
print("数据成功保存")

总结

OK,今天我们学习了pytho如何合并订单表,虽然看起来很简单,但是里面还是有很多东西值得我们去学习的,我们用到的文件里面只有十二个表,那如果有2000个表呢?
最后,感兴趣的麻烦点个赞和订阅哟。


网站公告

今日签到

点亮在社区的每一天
去签到