簡體   English   中英

檢查一列值是否在另一列中並創建列以在 Pandas 中指示

[英]Check if one column value is in another column and create column to indicate in Pandas

我想檢查Table1中的A是否在Table2中的A1中找到,並在Table1中創建一個指示符列來顯示此結果。

Table1

A           B       C       G
Harry       pig     NY      Year1
Kasey       cat     AL      Year2
Ron         b       AK      Year1
Amy         axe     KY      Year4
...

Table2

A1          Value       
John        X     
Mark        Y   
Harry       Z       
Ron         Z  
...   

預期 output:

A           B       C       G        exists
Harry       pig     NY      Year1    1
Kasey       cat     AL      Year2    0
Ron         b       AK      Year1    1
Amy         axe     KY      Year4    0
...

這是您可以嘗試的解決方案,使用np.where

import numpy as np

df1['exists'] = np.where(df1['A'].isin(df2['A1'].unique()), 1, 0)

       A    B   C      G  exists
0  Harry  pig  NY  Year1       1
1  Kasey  cat  AL  Year2       0
2    Ron    b  AK  Year1       1
3    Amy  axe  KY  Year4       0

另一種選擇是合並

out = pd.merge(df1, df2['A1'].drop_duplicates(),
               left_on='A', right_on='A1', how='left') \
    .rename(columns={'A1': 'exists'})

out['exists'] = out['exists'].notnull().astype(int)

print(out)

Output:

       A    B   C      G  exists
0  Harry  pig  NY  Year1       1
1  Kasey  cat  AL  Year2       0
2    Ron    b  AK  Year1       1
3    Amy  axe  KY  Year4       0

暫無
暫無

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

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