用Python pandas合并多个csv文件

有时候需要将多个表头一致的文件合并成一个,手动打开所有表一个一个复制 粘贴到总表中,繁琐且容易出错,写个简单代码,一键将所有的csv文件合并

"""
Created on Wednesday, March 25, 2020 at 12:14:56

@author: qinghua mao
"""

import os
import pandas as pd

path = r'D:\python脚本\合并csv'  # 获取文件目录,下面是所有的要合并的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")  # 将excel转换成DataFrame
        DFs.append(df)  # 多个df的list
# 将多个DataFrame合并为一个
df = pd.concat(DFs) #concat:合并

# 写入excel或者csv文件,不包含索引数据
# df.to_excel(r'D:\python脚本\csv合并结果1.xlsx', index=False)  #
df.to_csv(r'D:\python脚本\csv合并结果.csv', index=False),#写入csv文件中比较好,单元格格式不会有其他格式;
                                                            #如果合并的文件中文是乱码,可以指定编码格式;例如:encoding="gbk"

需要注意的是,合并后存在多行表头,需要手动删除除第一行外的所有表头
用Python pandas合并多个csv文件_第1张图片

你可能感兴趣的:(用Python pandas合并多个csv文件)