[英]Python-pandas "read_csv" is not reading the whole .TXT file
首先,我在這里找到了幾個具有相同標題/主題的問題,並且我嘗試了建議的解決方案,但沒有一個對我有用
這是問題所在:我想從一個巨大的.txt 文件(> 50 GB)中提取工作人員樣本,我為此目的使用 HPC 集群。
數據中的每一行代表一個具有許多信息(列變量)的工人。 這個想法是根據 ID 變量中的前兩個字母提取工人的子樣本:
df = pd.read_csv('path-to-my-txt-file', encoding= 'ISO-8859-1', sep = '\t', low_memory=False, error_bad_lines=False, dtype=str)
df = df.rename(columns = {'Worker ID' : 'worker_id'})
# extract subsample based on first 2 lettter in worker id
new_df = df[df.worker_id.str.startswith('DK', na=False)]
new_df.to_csv('DK_worker.csv', index = False)
問題是生成的.CSV 文件只有應該存在的行數的 10-15%(我有另一個關於我應該期望的大致行數的信息來源)。
我認為數據存在一些編碼問題。 我試過像'utf-8','latin_1'這樣的東西......沒有任何改變。
您是否在此代碼中看到任何可能導致此問題的錯誤? 我錯過了一些爭論嗎?
我不是 Python 專家:)
提前謝謝了。
您無法將 50GB 的文件加載到計算機 RAM 中,因此無法存儲那么多數據。 而且我懷疑 csv 模塊可以處理那種大小的文件。 您需要做的是以小塊打開文件,然后處理每一塊。
def process_data(piece):
# process the chunk ...
def read_in_chunks(file_object, chunk_size=1024):
while True:
data = file_object.read(chunk_size)
if not data:
break
yield data
with open('path-to-my-txt-file.csv') as f:
for piece in read_in_chunks(f):
process_data(piece)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.