![](/img/trans.png)
[英]How to remove/ignore invalid formatted data while reading a huge csv file and creating a Dataframe using chunks in python
[英]How to read a CSV file and write a huge data data to a new CSV file in chunks in python
我正在使用 csv 模塊(讀取)讀取一個 csv 文件,並將其處理為超過 60 GB 的大文件。然后使用 csv 模塊(寫入)將其寫入另一個 csv。讀取數據很好,但是在處理數據之后.它變得超過百萬條記錄。所以在運行代碼時它顯示 memory 錯誤。所以我試圖把它寫成塊。 我沒有使用 pandas,因為它很慢 我在需要幾天才能完成之前嘗試過它..所以我正在使用 csv 模塊進行讀寫。 我不知道如何分塊寫入 csv 文件以避免 memory 問題。
我想分塊寫入 csv 文件。 我首先讀取 csv header 並先寫入,然后將其他正文數據循環到同一個 csv 文件。 如何使用 csv 模塊而不是 pandas 以塊的形式寫入此主體數據。
with open("input.csv", "r") as f:
reader = csv.reader(f)
writer = csv.writer(open("out.csv.csv","a", newline=""))
header = next(reader)
writer.writerow(header+["modified"])
for r in reader:
to_change = r[2]
if "[" not in to_change:
writer.writerow(r+[to_change])
else:
static = to_change[:to_change.index("[")]
make = to_change[len(static)+1:-1].split("/")
modify = getmodified(make)
for each in modify:
modified = r+[static+each]
writer.writerow(modified)
輸入文件:輸入
輸出文件: Output
在 getmodified(make) function 中,我在將其寫入 CSV 后添加所有 im 獲取錯誤的范圍。它能夠寫入 2.7GB 數據..然后它顯示 memory 錯誤
# import required modules
import pandas as pd
import numpy as np
import time
# time taken to read data
s_time = time.time()
df = pd.read_csv("gender_voice_dataset.csv")
e_time = time.time()
print("Read without chunks: ", (e_time-s_time), "seconds")
# data
df.sample(10)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.