从 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、处理内存中的数据、pandas
或 dask
解决方案等。
您的系统很可能能够直接导入到 pandas
或 dask
(如果您需要的话)。这些是具有内置 read_csv
方法的流行数据处理 python 工具。
关于Python中大量数据的处理,最推荐的库之一是Pandas。它是一个 Python 库,专门用于数据分析,能够使用 DataFrame 对象解析大量数据。
我正在处理一个问题,我有一个 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、处理内存中的数据、pandas
或 dask
解决方案等。
您的系统很可能能够直接导入到 pandas
或 dask
(如果您需要的话)。这些是具有内置 read_csv
方法的流行数据处理 python 工具。
关于Python中大量数据的处理,最推荐的库之一是Pandas。它是一个 Python 库,专门用于数据分析,能够使用 DataFrame 对象解析大量数据。