您好我正在嘗試根據 df1 的值更新 df2 但該值未正確更新。請幫助我我做錯了什么?
例子-
df1:
job e_msg
0 f_maf_crm_customer_request_global_jgvcc permission denied for relation f_maf_custome
df2:
master_job error_msg
0 JGCC_Genesys_Conversations_Aggregates
1 f_maf_crm_customer_request_global_jgvcc [Errno 2] No such file or directory: '/medaff/
只想 df2 'error_msg的值 df1 e_msg。
我在下面寫了代碼-
df2.loc[(df1['job'].isin(df2['master_job'])) & (df1['e_msg'] != '') & (df2['error_msg'] != ''), ['error_msg']] = df1['e_msg']
預期輸出:df2:
master_job error_msg
0 JGCC_Genesys_Conversations_Aggregates
1 f_maf_crm_customer_request_global_jgvcc permission denied for relation f_maf_custome
uj5u.com熱心網友回復:
Series.isin與 一起使用df.loc:
In [43]: msg = df1[df1.job.isin(df2.master_job)]['e_msg'].squeeze()
In [45]: df2.loc[df2[df2.master_job.isin(df1.job)].index, 'error_msg'] = msg
In [46]: df2
Out[46]:
master_job error_msg
0 JGCC_Genesys_Conversations_Aggregates
1 f_maf_crm_customer_request_global_jgvcc permission denied for relation f_maf_custome
或者
使用df.merge:
In [54]: df1.columns = df2.columns
In [57]: res = df2.merge(df1, on='master_job', how='left').drop('error_msg_x', 1).rename(columns={'error_msg_y':'error_msg'})
In [58]: res
Out[58]:
master_job error_msg
0 JGCC_Genesys_Conversations_Aggregates NaN
1 f_maf_crm_customer_request_global_jgvcc permission denied for relation f_maf_custome
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/465175.html
標籤:Python python-3.x 熊猫 数据框
上一篇:如何通過公式制作串列編號
下一篇:SyntaxError:(unicodeerror)'unicodeescape'codeccan'tdecodebytesinposition2-3:truncated
