繁体   English   中英

跳过CSV中包含特定字符串的行

[英]Skip Rows in CSV Containing Specific String

我有一个字符串列表(比本例中更长)。 如果一行数据中存在一个字符串,我想跳过该行。 到目前为止,这是我遇到的问题,但出现索引错误,这使我相信我没有正确循环。

stringList = ["ABC", "AAB", "AAA"]

with open('filename.csv', 'r')as csvfile:
    filereader = csv.reader(csvfile, delimiter=',')
    next(filereader, None) #Skip header row
    for row in filereader:
        for k in stringList:
            if k not in row:
                data1 = column[1] 

我得到的错误: IndexError: list index out of range 我知道我正在按行读取,但是我需要按列提取数据。

使用大熊猫,您可以戴着面具轻松做到。 查看更多: 链接

import pandas as pd

data = pd.read_csv('filename.csv')
data = data.loc[data['column_name'] not in stringList]

该错误是因为row是一个列表,并且您正在使用/访问它作为普通变量。 您可以通过使用列表行的适当索引来访问某些列。 例如:在第一次迭代中, row[0]将是第一行第一列中的元素, row[1]是第二列条目中的元素,依此类推。 row后续迭代中,您可以向下访问后续column的条目。

这是一个简单的循环。

for row in filereader:
        for k in stringList:
            for i in range(len(row)):
                if k not in row[i]:
                    someVar=row[i]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM