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