前言
????????處理數(shù)據(jù)時(shí),有多個(gè)csv文件需要合并。有兩個(gè)方法可以實(shí)現(xiàn),第一個(gè)是可以通過(guò)python提供的pandas模塊,借助?pd.concat()實(shí)現(xiàn)多個(gè)csv文件的合并。第二個(gè)是通過(guò)linux命令實(shí)現(xiàn)。
1.pandas模塊實(shí)現(xiàn)
1-1 獲得全部csv文件路徑
import pandas as pd
import os
#遍歷獲得文件
def FilesPath(path):
'''
path: 目錄文件夾地址
返回值:列表,pdf文件全路徑
'''
filePaths = [] # 存儲(chǔ)目錄下的所有文件名,含路徑
for root,dirs,files in os.walk(path):
for file in files:
filePaths.append(os.path.join(root,file))
return filePaths
#獲得所以文件路徑
Total_file = FilesPath('/home/風(fēng)機(jī)葉片開(kāi)裂故障預(yù)警數(shù)據(jù)集/train')
1-2 ?查看數(shù)據(jù)
df = pd.read_csv(Total_file[1],encoding='utf8')
1-3 合并數(shù)據(jù)
data = pd.DataFrame()
for file_path in (Total_file[1:10]):
df = pd.read_csv(file_path,encoding='utf8')
data = pd.concat([data,df])
# 重新設(shè)置索引 從0開(kāi)始
data.reset_index(drop=True, inplace=True)
#將合并的data存儲(chǔ)
data.to_csv(Total_data_save_path,index = False,encoding='utf8')
2. linux命令實(shí)現(xiàn)
2-1 合并數(shù)據(jù)
????????將所有的csv文件合并,并命名為all.csv。
cat csvfile/*.csv > all.csv
2-2 去除標(biāo)題
????????使用cat命令對(duì)csv文件合并時(shí),會(huì)將每個(gè)csv文件的標(biāo)題一起添加到新文件中,所以需要對(duì)all.csv進(jìn)行去重處理,將重復(fù)的標(biāo)題刪除。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-511028.html
data.drop_duplicates(subset=['A','B','C'],keep='first',inplace=True)
參數(shù)說(shuō)明如下:
subset:去重的列名,默認(rèn)為 None。
keep:有三個(gè)可選參數(shù),分別是 first、last、False,默認(rèn)為 first,表示只保留第一次出現(xiàn)的重復(fù)項(xiàng),刪除其余重復(fù)項(xiàng),last 表示只保留最后一次出現(xiàn)的重復(fù)項(xiàng),F(xiàn)alse 則表示刪除所有重復(fù)項(xiàng)。
inplace:布爾值參數(shù),默認(rèn)為 False 表示刪除重復(fù)項(xiàng)后返回一個(gè)副本,若為 Ture 則表示直接在原數(shù)據(jù)上刪除重復(fù)項(xiàng)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-511028.html
到了這里,關(guān)于【工程實(shí)踐】python 合并多個(gè)csv文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!