使用Python批量合並文件夾下.csv數據


實現目標:一個文件夾下包括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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM