我有一个字符串列表(比这个例子要长)。如果一行数据中存在一个字符串,我想跳过该行。到目前为止,这是我所能得到的,但是出现索引错误,这使我相信我没有正确循环。
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
。我知道我正在按行读取,但是我需要按列提取数据。
答案 0 :(得分:1)
使用熊猫,您可以戴着面具轻松地做到这一点。查看更多:link
import pandas as pd
data = pd.read_csv('filename.csv')
data = data.loc[data['column_name'] not in stringList]
答案 1 :(得分:1)
该错误是因为row
是一个列表,并且您正在使用/访问它作为普通变量。
您可以通过使用列表行的适当索引来访问某些列。例如:在第一次迭代中,row[0]
将是第一行第一列中的元素,row[1]
将是第二列条目中的元素,依此类推。在row
的后续迭代中,您可以向下访问后续列的条目。
这是一个简单的循环。
for row in filereader:
for k in stringList:
for i in range(len(row)):
if k not in row[i]:
someVar=row[i]