我有一個包含 100 條記錄的 csv 檔案。我想在第一次迭代中將前 50 條記錄寫入一個新的 csv 檔案,即“newFile.csv”。在第二次迭代中,我想在從原始 csv 檔案中讀取接下來的 50 條記錄后,在“newFile.csv”檔案中寫入接下來的 50 條記錄。
我能夠執行第一次迭代,但無法使用預期值作為必須寫入 csv 檔案的下 50 行執行第二次迭代。有人可以幫我解決這個問題嗎?謝謝
這是代碼
import pandas as pd
oldData = pd.read_csv('oldFile.csv') # Has 100 rows
for i in range(2):
newData = pd.read_csv('oldFile.csv', nrows=50) # Has 50 rows
newCsv = newData.to_csv('newFile.csv', index=False)
newData = newData.iloc[50:] # Removes those 50 rows
uj5u.com熱心網友回復:
import pandas as pd
oldData = pd.read_csv('oldFile.csv') # Has 100 rows
for newData in pd.read_csv('oldFile.csv', chunksize=50) # Has 50 rows:
newCsv = newData.to_csv('newFile.csv', index=False)
newData = newData.iloc[50:] # Removes those 50 rows
這樣,每次讀取 .csv 檔案時,它都包含 50 行。第一次迭代前 50 行,第二次迭代從 51 到 101 的行,依此類推。
uj5u.com熱心網友回復:
您可以讀取oldFile.csv50 行的塊,然后單獨處理每個塊,例如,
import pandas as pd
nRows=50
with pd.read_csv('oldFile.csv', chunksize=nRows, header=None) as reader:
for chunk in reader:
print(chunk)
chunk.to_csv('newFile.csv', index=False, header=None)
請注意,newFile.csv在每次迭代中都會被覆寫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/529025.html
上一篇:做嵌套for回圈的更簡單方法?
