![](/img/trans.png)
[英]How to replace the values in a dataframe column based on another dataframe condition
[英]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.