有时候需要将多个表头一致的文件合并成一个,手动打开所有表一个一个复制 粘贴到总表中,繁琐且容易出错,写个简单代码,一键将所有的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"
需要注意的是,合并后存在多行表头,需要手动删除除第一行外的所有表头