嗨,对不起,如果这是一个明显的问题,看看网上,我似乎找不到我做错了什么。
我试图比较两个列表的内容,在两个单独的csv文件(文件A和文件B)。两个csv文件都是x行,但每个列只有1列。文件A由每个句子组成的行组成,B文件由单个单词组成。我的目标是搜索B文件中的行,如果这些行中有任何行出现在文件A中,则将相关行从文件A追加到要导出的单独的空列表中。我正在运行的代码如下:
import pandas as pd
#Importing csv files
##File A is 2 rows of sentences in 1 column, e.g. "This list should be picked up for the word DISHWASHER" and "This sentence should not appear in list_AB"
file_A = pd.read_csv(r"C:\Users\User\Desktop\File\file_A.csv")
##File B is 2 rows of singular words that should appear in file A e.g. "DISHWASHER", "QWERTYXYZ123"
file_B = pd.read_csv(r"C:\Users\User\Desktop\File\file_B.csv", converters={i: str for i in range(10)})
#Convert csv files to lists
file_A2 = file_A.values.tolist()
file_B2 = file_B.values.tolist()
#Empty list
list_AB = []
#for loop supposed to filter file_A based on file_B
for x in file_A2:
words = x[0].split(" ")
#print(words)
for y in file_B2:
#print(y)
if y in words:
list_AB.append(x)
print(list_AB)问题是,打印(List_AB)只返回一个空列表([]),而不是file_A的过滤版本。我之所以要这样做,是因为我想要读取的实际csv文件由21600 (文件A)和50400 (文件B)行组成。如果这是一个非常基本的问题,请提前道歉。
编辑:添加了csv文件的图片示例,无法看到如何上传文件。

发布于 2022-02-07 01:38:42
问题在if语句y in words中.
这里y是一个列表。您在字符串列表中搜索列表(而不是列表列表)。
使用y[0] in words解决您的问题。
https://stackoverflow.com/questions/71012558
复制相似问题