从 csv 文件中删除所有具有特定值的行

Delete all rows with specific values from csv file

我正在处理一个问题,我有一个 csv 文件形式的非常大的数据集。此 csv 文件包含多个列,其中一列是州代码。数据集比我需要的要大得多——我只需要一个州的值。

我正在考虑使用的解决方案是使用 Python 读取 csv 文件,然后写入一个新文件,其中只包含我需要的行 - 删除 50 个状态中的 49 个(U.S).

csv 文件有超过 300 万行。我是 Python 的新手,我不确定如何才能有效地做到这一点,完成这项任务的最佳方法是什么?

感谢您的帮助,如果这看起来是一个简单的问题,我深表歉意 - 我是 Python 的新手。

删除所有行不同于只提取一个状态。从文件中删除行已得到充分处理 here。假设您想要的只是提取一种状态,这是您可以实现的一种方法。

with open("file.csv", "r") as file:
    for line in file:
        sline = line.split(",")
        if sline[n] == statecode:
            # Where n is the position of the statecode column zero indexed
            # and statecode is your target state code
            pass # this is where you do something with the data

使用此模式,您几乎可以实现任何涉及逐行递增 csv 的解决方案。这包括写入新的 csv、处理内存中的数据、pandasdask 解决方案等。

您的系统很可能能够直接导入到 pandasdask(如果您需要的话)。这些是具有内置 read_csv 方法的流行数据处理 python 工具。

关于Python中大量数据的处理,最推荐的库之一是Pandas。它是一个 Python 库,专门用于数据分析,能够使用 DataFrame 对象解析大量数据。