如果某列包含某个值,如何检查大型csv的每一行并写入该行?

史蒂夫

我正在处理一个很大的(3.5GB).csv文件,我无法完全在内存中对其进行处理,并且希望:

  • 读入一行数据
  • 检查字段是否等于给定条件
  • 如果为true,则将该行附加到新的.csv文件中。如果为假,则跳到下一行
  • 循环播放,直到到达原始文件的末尾

最终结果将是一个单独的.csv,其中包含与条件匹配的所有行。

史蒂夫

我发现以下对我有用。请注意,这还会为列表中的每个标准值生成一个单独的输出文件。

import csv

# criteria is the column number from the source data to check against the values list
criteria = 4

valueslist= ['criteria1','criteria2','criteria3']

for item in valueslist:

    with open('sourcedata.csv', 'rb') as inf, open(item + '.csv','wb') as outf:
        reader = csv.reader(inf)
        writer = csv.writer(outf)

        # -- Write Headers as first row
        writer.writerow(["column1", "column2", "column3"])
        for row in reader:
            if row[criteria] == item:
                writer.writerow(row)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果该行或下一行不包含特定字符串,则如何打印该行

如果同一行的另一列等于某值,如何计算一列中的值?

如何为首次出现某个特定值的每一行返回列索引

如何返回第一行,该行比数据帧中每列的最小值高10%?

如果某列不包含同一行中另一列的值,则将新列pandas中另一列的值添加

如果第 2 列等于某个值,如何每 5 行连接一次?

如果组中的任何一行包含某个值,则创建一个新列并分配值

如果同一行中包含重复值,则删除该行

根据该行中的列的值按比例将数字除以每一行 MySQL PHP

如果该列中有任何列包含某个值,则在Pandas Dataframe中删除一行

对于每一行,哪些列包含值

如果一行中的任何变量大于某个值,则将该行保留在 R 中

如何创建包含每一行倒数第二个值的列?

如果变量不是 None 并且大于一行中的某个值,如何在 python 中检查?

Visual Basic遍历每一行并将每一行的第一列的值写入不同的标签

R:如果前一行包含某个值,则更新行

如果每一行包含不同数量的字段(数量很大),如何正确读取csv文件?

如何从csv的每一行中提取单个值?

如果表中不存在该行,如何获取另一行的值?

读取CSV以及如何将CSV文件的名称写入CSV的每一行

如何读取 CSV 并将每一行调整 + 写入另一个 CSV?

删除一行,如果它包含熊猫中的某个值

访问每一行并检查数据框中的每一列值

检查另一个csv文件中每一行的csv文件值

如果某列的每 10 个单元格中某个值出现的次数少于 3 次,则将这些值替换为另一个值

如何对列值的每一行求和?

如果一行共享一列中另一行的值并且在 R 中的另一列中具有一个值,如何删除该行?

使用该行的一部分索引到file2并查找值后,如何在该行的每一行附加值?

在 Python 中,检查每一行中的零,如果行有 3 个或更多零,则删除该行。当前代码对文件没有任何作用