Python本地文件合并(csv)
生活随笔
收集整理的這篇文章主要介紹了
Python本地文件合并(csv)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Python本地文件合并
- 一、單文件之間合并
- 二、單個文件夾底下多個文件合并
- 三、多個文件夾底下多個文件合并
- 四、多文件夾[函數(shù)遞歸]
注:
一、單文件之間合并
首先,要查詢目錄底下的文件要導入OS。并且我們要將.csv文件以pandas的dataframe底下,因此要導入PANDAS,另外由于我們要遍歷目錄,因此導入 GLOB:
import os import pandas as pd import glob注:
合并完成之后就會多出一個f1112.csv文件:
然而打開f1112.csv后發(fā)現(xiàn)合并后的文件有一些臟數(shù)據(jù)沒有整理:
這時候我們試試skiprows:
在讀取文件的時候設置skiprows參數(shù)的值,設置為1,會跳過一行,這里是要將第二個文件的索引屬性給去掉,因為已經(jīng)和第一個文件合并了,而第一個文件有索引屬性了。
在本地目錄中打開該文件:
二、單個文件夾底下多個文件合并
csv_list=glob.glob('../input/covid19temp/2020/*.csv') # 如果不加上*的話拿到的就是目錄的名稱,如果加上*,拿到的就是完整的目錄數(shù)據(jù) print(csv_list) for i in csv_list: fr=open(i,'r').read()with open('2020csvdata.csv','a') as f:f.write(fr)f.close() print('數(shù)據(jù)文件合并完成!')
合并之后使用pd.read_csv讀取文件數(shù)據(jù),一共有20W+的疫情數(shù)據(jù)記錄:
三、多個文件夾底下多個文件合并
import os import pandas as pd import glob import openpyxl import numpy as nppath='../input/covid19temp' # 寫的路徑 csv_lists=[] # 該列表的作用# 是否更新目錄判斷: if os.path.isdir(path): #使用os.path.isdir判斷path是否是路徑if not path.endswith("/"):# 如果該路徑的最后沒有加上'/'的話,會幫忙加一個/path+="/"print(path)
如上圖所示,路徑后面多了一個 ‘/’,否則路徑會找不到
文件操作:
四、多文件夾[函數(shù)遞歸]
import os import pandas as pd def mergeFiles(parent,path="",pathdeep=0):fileAbsPath=os.path.join(parent,path)if os.path.isdir(fileAbsPath)==True:if (pathdeep!=0 and('.ipynb_checkpoints' not in str(fileAbsPath))):print('=='+path)for filename2 in os.listdir(fileAbsPath):mergeFiles(fileAbsPath,filename2,pathdeep=pathdeep+1)else:print(path) path=input("請輸入需要的文件注主目錄:") mergeFiles(path)總結(jié)
以上是生活随笔為你收集整理的Python本地文件合并(csv)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html中只居中偏右怎么设置,写字如何把
- 下一篇: 我真是太年轻了