簡體   English   中英

檢查元素列表是否在 DataFrame 列中

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM