我有一个有100条记录的csv文件。我想写前50条记录在一个新的csv文件,即'newFile.csv'在第一次迭代。在第二次迭代中,我想在从原始csv文件中读取下一个50条记录后,在'newFile.csv'文件中写入下一个50条记录。
我能够执行第一次迭代,但无法使用期望值执行第二次迭代,因为接下来的50行必须写入csv文件中。有人能帮帮我吗??谢谢你
代码
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
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行,依此类推。
您可以以50行为块读取oldFile.csv
,然后单独处理每个块,例如
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
在每次迭代中都被覆盖。