使用Python,如何遍历csv文件的每一行记录的每一个字段值?并进行字段值是不是符合条件的判断?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Python,如何遍历csv文件的每一行记录的每一个字段值?并进行字段值是不是符合条件的判断?相关的知识,希望对你有一定的参考价值。

比如说,我有这样的csv数据

A,B,C,D

3,2,1,5,

4,6,0,7

1,7,5,2

我想要对D列的每一个数据进行遍历,确定D列的数据必须为0至5之间的数,如果不是则将该行的数据删除,然后对下一行进行检查。保存经过筛选以后的csv文件

按行读进来,用“,”分割,然后把符合条件的保留,最终把保留的写到新文件中。注意读进来的都是字符,所以判断数字的时候要做一次转换。又由于不是全部是数字,所以这里用一些try之类的或者预先判断一下是否全部是数字。实现起来不难。估计不超过10多行代码。 参考技术A fileObject = open("data.csv")
res = list(fileObject)
new = [res[0]]
i = 1
while i < len(res):
temp = int((res[i].split(","))[3].strip("\n"))
if temp < 0 or temp >=5:
i += 1
continue
new.append(res[i])
i += 1

fileObject1 = open("newdata.csv", "w")
fileObject1.writelines(new)
fileObject1.close()
fileObject.close()

能用,不过不是很健壮本回答被提问者采纳
参考技术B import csv 懂?

PHP遍历csv的每一行并返回具有匹配元素的行

【中文标题】PHP遍历csv的每一行并返回具有匹配元素的行【英文标题】:PHP iterate through each row of csv and return row with matching element 【发布时间】:2020-02-13 15:33:16 【问题描述】:

我有一个名为 data.csv 的 csv 文件。

这是 data.csv 中的示例

Microsoft,2020-02-13,"Sample",tt,aa,qq,w,ee,rr,tt,", ",", ",", ","2020-02-13 16:03:08"
Google,2020-02-13,"HQ",tt,aa,qq,w,ee,rr,tt,", ",", ",", ","2020-02-13 16:10:48"

我正在尝试遍历 csv 的每一行并检查用户输入的变量(比如说 var="Microsoft")是否与任何行中的第一个值匹配。如果匹配,则将该行中的所有元素作为数组返回。 (尝试使用 fgetcsv 但返回整个 csv 文件)

这是我迄今为止尝试过的:

foreach ($csv as $line) 
    if ($line[0] == 'Microsoft') 
        $file = fopen("data.csv","r");
        echo(fgetcsv($file));
        fclose($file);
    

【问题讨论】:

【参考方案1】:
$csv = array_map('str_getcsv', file('./temp.csv'));

foreach ($csv as $line) 
    if ($line[0] == 'Microsoft') 
        echo implode(', ',$line);
    

【讨论】:

【参考方案2】:

如果第一列的值适合作为数组索引。您可以使用 array_column 按您的第一列重新索引:

<?php
$result = array_column(array_map('str_getcsv', file('data.csv')), null, 0)['Microsoft'] ?? null;

【讨论】:

以上是关于使用Python,如何遍历csv文件的每一行记录的每一个字段值?并进行字段值是不是符合条件的判断?的主要内容,如果未能解决你的问题,请参考以下文章

Python如何读取csv文件某一列的每一行数据,并判断该数值是不是满足条件?

如何使用python访问csv文件中的每一列

gh读取csv文件

PHP遍历csv的每一行并返回具有匹配元素的行

如何遍历数据框并对该数据框的每一行执行一些操作?

python中对csv文件某一列的每一行文本进行分词后再写到该文件另一列怎么做