我有 2 个数据帧 df1
ID df1_Members
100 Eric
200 Chris
300 Jordan
400 Samantha
600 Audrey
df2
ID df2_Members
100 Eric
200 Chris
300 Jordan
400 NaN
500 NaN
我正在合并数据帧`
df_merge=pd.merge(df1,df2,on='ID',how='left')
合并后的数据框看起来像这样
ID df1_Members df2_Members
100 Eric Eric
200 Chris Chris
300 Jordan Jordan
400 Samantha NaN
600 Audrey NaN
我想将与 ID 400 对应的 NaN 替换为“无数据”,将与 600 对应的 ID 替换为“ID 不存在”,因为 ID 600 不在 df2 中
我正在尝试这样做,但它不起作用
if (df_merge['df2_Members']==np.nan) & (df1['ID'].isin(df2['ID'])):
df_merge['df2_Members'].fillna('No Data',inplace=True)
#ID in df1 doesn't exist in df2
elif (df_merge['df2_Members']==np.nan) &(~df1['ID'].isin(df2['ID'])):
df_merge['df2_Members']="ID doesn't exist in df2"
`
试试这个:
df_merge.loc[(df_merge['df2_Members'].isna()) & (df_merge['ID'].isin(df2['ID'])), 'df2_Members'] = 'No Data'
df_merge.loc[(df_merge['df2_Members'].isna()) & (~df_merge['ID'].isin(df2['ID'])), 'df2_Members'] = "ID doesn't exist in df2"
df_merge
应该返回你想要的
ID df1_Members df2_Members
0 100 Eric Eric
1 200 Chris Chris
2 300 Jordan Jordan
3 400 Samantha No Data
4 500 Audrey No Data
5 600 Johnny ID doesn't exist in df2
我添加了 ID 600 作为 df2 中不存在的另一个名称
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句