簡體   English   中英

根據條件將數據框的一列與另一數據框連接

[英]Join one column of a dataframe with another dataframe based on a condition

我有2個數據幀df1和df2,如下所示:

df1:

     Name          Code          Title_num
 0  Title_1        0             TN_1234_4687
 1  Title_2        0             TN_1234_7053
 2  off_1          18301         TN_1234_1915
 3  off_2          18302         TN_1234_7068
 4  off_3          18303         TN_1234_1828

df2:

     A_Code     T_Code
 0  000000086   18301   
 1  000000126   18302   
 2  000001236   18303   
 3  000012346   18938   
 4  000123456   18910   
 5  000123457   18301

其中df2中的T_code與df1中的Code相同。 我想將df1中的Title_num列加入df2中。

例如,如果df2中的'T_Code'與df1中的'code'相匹配,我希望將df1 ['Title_num']列中的值連接到df2。 如果該值不存在,則應填充NaN。

預期輸出(加入后的df2):

    A_Code      T_Code   Title_num
 0  000000086   18301    TN_1234_1915
 1  000000126   18302    TN_1234_7068
 2  000001236   18303    TN_1234_1828
 3  000012346   18938    NaN
 4  000123456   18910    NaN
 5  000123457   18301    TN_1234_1915

為此,我將df1中的列代碼重命名為“ T_code”,以便與df2上的名稱匹配。 然后我運行以下代碼:

 df2.merge(df1,on='T-Code',how='left')

這產生了以下錯誤:'T_code'#檢查重復項

現在,要注意的一件事是在df2中,重復的T_code將存在,而在df1中,Code是唯一的。 我希望df2中的Title_num值始終基於T_code值顯示[檢查預期輸出的第5行。 T_code的值與行1]相同。

讓我知道執行此操作的方法。 任何幫助深表感謝!

您好, 這里已經回答這個問題。

祝你好運。

我最終這樣做:

df2=pd.merge(df2, df1,left_on='T_Code', right_on='Code', how='left')
df2.drop(columns =['Name', 'Code']) 

暫無
暫無

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

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