[英]Check if elements list are in column DataFrame
目标:我有 200 个元素(url)的列表,我想检查每个元素是否在Dataframe的特定列中。 如果是,我想从列表中删除该元素。
问题:我正在尝试类似的解决方案,将那些不存在的列表添加到新列表中,但它会添加所有这些。
pruned = []
for element in list1:
if element not in transfer_history['Link']:
pruned.append(element)
我也尝试过我要求的解决方案,但没有成功。 我认为这是一件简单的事情,但我找不到关键。
for element in list1:
if element in transfer_history['Link']:
list1.remove(element)
当您与 pandas 系列一起使用in
, 您正在搜索索引,而不是值。 要解决此问题,请使用transfer_history['Link'].tolist()
将列转换为列表,或者更好地将其转换为集合。
links = set(transfer_history["Link"])
过滤列表的好方法是这样的:
pruned = [element for element in list1 if element not in links]
迭代时不要从列表中删除元素,这可能会产生意想不到的结果。
请记住,您的transfer_history['Link']
语法是整个列本身。 您需要使用另一个数组transfer_history['Link'][x]
来调用列中的每个项目。 使用 for 循环遍历列中的每个项目。
或者更简单的方法是检查该项目是否在一个由整个列组成的列表中,并带有一个衬里:
pruned = []
for element in list1:
if element not in [link for link in transfer_history['Link']]:
pruned.append(element)
如果 url 的顺序无关紧要,可以使用集合来简化很多:
list1 = list(set(list1) - set(transfer_history['Link']))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.