鱼C论坛

 找回密码
 立即注册
查看: 1339|回复: 2

如何将一个文件夹的所有excel表格横向合并

[复制链接]
发表于 2022-3-27 00:47:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求如何将一个文件夹的所有excel表格横向合并
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-28 16:24:22 | 显示全部楼层
之前做过类似的事情,希望以下代码能帮助到你
import os
import pandas as pd

for root, dirs, files in os.walk(r"C:\Users\lenovo\Desktop\test"):
    files_name = files # list
    for each in files_name:
        # 拼接出文件夹中excel的path
        path = r"C:\Users\lenovo\Desktop\test" + "\\" + each
        # 以第一个excel中内容为基,将其他excel内容不断拼接上去
        if files_name.index(each) == 0:
            DF = pd.read_excel(path)
        else:
            df = pd.read_excel(path)
        # axis=1代表横向拼接,0代表纵向累叠
            DF = pd.concat([DF, df], axis=1)
    # 把拼接完的dataframe形式写入一个新的excel中
    DF.to_excel(r"C:\Users\lenovo\Desktop\a.xlsx")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-30 16:09:13 | 显示全部楼层
import os
import pandas as pd

path = r'C:/Users/Betterman/Desktop/1/2021.4月份红外'  # 获取文件目录,下面是所有的要合并的csv文件

# 新建列表存放每个文件数据(依次读取多个相同结构的Excel文件并创建DataFrame)
DFs = []   #存放多个DataFrame

for root, dirs, files in os.walk(path):  # 第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。
    for file in files: #files是包含所有文件名的一个列表
        # print(root)
        file_path = os.path.join(root, file)  #路径拼接;os.path.join()函数:连接两个或更多的路径名组件
        # print(file_path)
        df = pd.read_csv(file_path, encoding="gbk", names=[1,2])  # 将excel转换成DataFrame
        DFs.append(df)  # 多个df的list
# 将多个DataFrame合并为一个
df = pd.concat(DFs, axis = 1, ) #concat:合并

# 写入excel或者csv文件,不包含索引数据
# df.to_excel(r'D:\python脚本\csv合并结果1.xlsx', index=False)  #
df.to_csv(r'C:/Users/Betterman/Desktop/1/2021.4月份红外/csv合并结果.csv', index=False,header=None)#写入csv文件中比较好,单元格格式不会有其他格式;
print(files) #打印出文件拼接顺序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 00:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表