问题描述
我给了一个任务来读取特定的 n 行数据(CSV 文件)并删除它们。假设给定用户的时间戳、年龄、性别(CSV 格式),我想读取 10 行以避免过载。但我不知道该怎么做。你能告诉我如何有效地解决这个问题吗?谢谢
解决方法
import csv
import pandas as pd
# reads your file in chunks (lines of 10)
chunk_iterator = pd.read_csv('sample.csv',chunksize=10)
# rewrite over file to 'delete' the unwanted lines
with open('sample.csv','w') as outf:
writer = csv.writer(outf)
for line in chunk_iterator:
# if condition satisfied,write to new file
if (<insert condition>):
writer.writerow(line)
以上使用 pandas
有效地以块的形式读取 csv 文件。然后它会重写同一个文件,从而“删除”不符合您设置的特定条件的行。 (你没有说明这个条件是什么,所以不包括在内)。
如果您想保留原始文件并将输出写入不同的文件,请在 outfile 行中更改文件名,例如:with open('updated_sample.csv','w') as outf: