读取多行csv文件并删除这些行

问题描述

我给了一个任务来读取特定的 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: