【发布时间】:2018-10-23 02:30:11
【问题描述】:
我有 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"
`
【问题讨论】:
-
您的问题令人困惑:ID 600 不在 df 和 df2 中,ID 400 和 500 都是 NaN,因此生成的 df 不能是您所显示的。