我的路徑中有 2 個 csv 檔案。我想在不閱讀的情況下連接或合并 2 個檔案。這是針對資料加載問題和合并錯誤(大量資料)
我的檔案夾/a.csv 我的檔案夾/b.csv
使用代碼 >> 制作 a.csv b.csv / 不使用 pd.read_csv
uj5u.com熱心網友回復:
嘿,看看https://www.tensorflow.org/guide/data
您可以使用https://www.tensorflow.org/guide/data#sumption_sets_of_files
資料集中的大多數操作不會加載所有資料,因為它們是生成器將根據需要加載/預加載資料。
您使用 ds.take(number of items) 獲取并使用資料集的一個子集。它還允許生成包含映射功能的管道。管道完成后,您可以遍歷資料集以獲取所有資料。
uj5u.com熱心網友回復:
如果要連接兩個檔案,可以將一個檔案寫入另一個檔案,而無需讀取整個檔案。當您將open函式用于 CSV 時,您將創建一個生成器物件并逐行讀取它。那么,它看起來如何:
import csv
with open('second_file.csv', mode='r', newline = '') as csvfile:
with open('first_file.csv', mode='a') as f:
reader = csv.reader(csvfile)
writer = csv.writer(f)
next(reader) #to skip csv header of second_file
#you can even filter the second file without reading a whole and write filtered version. But if you don't need it, just use writer.writerows(reader)
filt = filter(lambda x: int(x[2]) >= 2, reader)
writer.writerows(filt)
uj5u.com熱心網友回復:
實作這一目標的一種選擇是使用dask:
from dask.dataframe import read_csv, concat
df1 = read_csv('my folder/a.csv')
df2 = read_csv('my folder/b.csv')
final_df = concat([df1, df2])
final_df.to_csv('combined.csv', index=False, single_file=True)
這可以很容易地擴展到多個 csv 的情況(假設它們具有相同的列結構):
from dask.dataframe import read_csv
final_df = read_csv('my folder/*.csv')
final_df.to_csv('combined.csv', index=False, single_file=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/489593.html
