簡體   English   中英

如何根據來自不同數據幀的列中的條目在數據幀上應用 Pandas 過濾器(無連接)

[英]How to apply a Pandas filter on a data frame based on entries in a column from a different data frame (no join)

例如,我有一個數據框 (df_1),其中一列包含一些文本數據。 第二個數據框 (df_2) 包含一些數字。 如何檢查文本是否包含第二個數據框中的數字?

df_1

                       Note
0  The code to this is 1003
1  The code to this is 1004

df_2

   Code_Number
0         1006
1         1003

所以我想檢查 df_1 [Note] 中的條目是否包含 df_2 [Code_Number] 中的條目

我嘗試使用以下代碼: df_1[df_1['Note'].str.contains(df_2['Code_Number'])]並且我知道我不能使用連接,因為我沒有加入的密鑰。

應用過濾后我正在尋找的最終結果是:

   Note              
0  The code to this is 1003    

做這個:

df_1.loc[df_1['Note'].apply(lambda x: any(str(number) in x for number in df_2['Code_Number']))]

試試這個,看看它是否涵蓋了您的用例:獲取兩列的交叉笛卡爾,使用itertools 的產品並根據條件過濾:

from itertools import product
m = [ left for left, right
      in product(df.Note,df1.Code_Number) 
      if str(right) in left]

pd.DataFrame(m,columns=['Note'])

               Note
0   The code to this is 1003
Firstly, you have to create 1 column in your df1 where the notes are with a list of numbers that are present in the Notes and then Compare the List column of numbers with the List column of the df2 where the numbers are present(both should be in list format)



#Extract Numbers from Notes
a_string = "0abcadda1 11 def 23 10007"

numbers = [int(word) for word in a_string.split() if word.isdigit()]

print(numbers)


list_test = "103,23"

#Finding common element from both lists the list
L1 = [2,3,4]
L2 = [1,2]
[i for i in L1 if i in L2]


S1 = set(L1)
S2 = set(L2)
print(S1.intersection(S2))

#If you want to find out the common element

def common_data(list1, list2):
    result = False

    # traverse in the 1st list 
    for x in list1:

        # traverse in the 2nd list 
        for y in list2:

            # if one common 
            if x == y:
                result = True
                return result

    return result


# driver code 

a = [1, 2, 3, 4, 5]
b = [5, 6, 7, 8, 9]
print(common_data(a, b))

a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9]
print(common_data(a, b)) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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