[英]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.