使用Python批量合并文件夹下.csv数据

Posted on 2021-02-16 11:50  Smilesq  阅读(741)  评论(0编辑  收藏  举报

实现目标:一个文件夹下包括n个.csv数据文件,想将后缀为ts.csv的文件与对应数字的.csv文件进行合并

 

 

 此图为wf.csv文件中的数据格式,ts.csv文件是与此文件等行数的一列数据,将此列数据添加到已有18列数据的后面,完成数据合并操作

代码如下:

import pandas as pd
from pandas import DataFrame
import os
import numpy as np
import csv
import xlrd
import xlwt
import time

# https://www.cnblogs.com/nxf-rabbit75/p/10105271.html替换一些小技巧
path = r'C:\Users\Administrator\Desktop\mat'#文件夹路径
def get_file():  # 创建一个空列表
    files = os.listdir(path)
    list = []
    for file in files:
        if not os.path.isdir(path + file):  # 判断该文件是否是一个文件夹
            f_name = str(file)
            #             print(f_name)
            tr = '\\'  # 多增加一个斜杠
            filename = path + tr + f_name
            #filename =  f_name
            list.append(filename)#得到所有数据文件的名字
    return list
list = get_file()
#start=time.time()
i=0
for f in list[1::2]:
    df = pd.read_csv(f,header=None)  # 每个csv文件中的数据
    data1 = np.array(df)  # 把表格转换成数组的格式
    df1 = pd.read_csv(list[i],header=None)  # 每个csv文件中的数据
    data2 = np.array(df1)  # 把表格转换成数组的格式
    #np.insert(data2, 18, values=data1, axis=1)
    data3=np.c_[data2,data1]#将data1数据加载在data2数据列后面
    dfdata = pd.DataFrame(data=data3)
    filename=os.path.basename(list[i])#截取文件名
    datapath1 = 'C:\\Users\\Administrator\\Desktop\\combineFile\\' + filename
    dfdata.to_csv(datapath1,index=False,header=None)  # 进行数据的保存
    i=i+2
#end=time.time()
#print("此程序一共运行%s"%(end-start))

  转换成功啦!

 

 一定要注意如果建立了numpy.array是不能改变原有数组的值,只能新建一个变量进行保存生成的数据!!!

给numpy矩阵添加一列的方法和实例:https://blog.csdn.net/weixin_39624716/article/details/111434490?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242