如何获得价值并使之成为现实

2024-06-01 11:37:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我如何寻找一个值并使其正确

数据帧一:

   AD1   AF   GG 
0  DDA   4    2   
1  AA    1    2

数据帧二:

    AD   FA  HH   
0   DDA  3   4
1   DD   3   4

所需(数据帧3):

    AD   FA
0   DDA  3      
1   DD  NaN

用于:

df3 = pd.DataFrame(columns=['AD', 'FA'])
WE = df3.merge(df1, on='AD1', how='left')
df1['FA']=WE
#WE = df2.AD=np.where(df2.AD.isin(df1.AD1),df2.AD,np.nan)

我得到KeyError: 'AD'


Tags: 数据hhnpadddfaaawe
1条回答
网友
1楼 · 发布于 2024-06-01 11:37:21

看来你需要:

df3 = df2[['AD', 'FA']].copy()
df3.FA=np.where(df2.AD.isin(df1.AD1),df3.FA,np.nan)
print (df3)
    AD   FA
0  DDA  3.0
1   DD  NaN

编辑:

print (df1)
       EW       WE      DA     dd  AA
0  cheese     fdwa  waddcv   21.0 NaN
1  cheese  dwadwad    dwad  231.0 NaN
2  cheese      dwa  waddcv    3.0 NaN

print (df2)
       AD   FA     BA  DA    daw
0  cheese  1.0  300.0   T      T
1  dwadaw  3.0  400.0  21  31232

#remove duplicates in EW and merge by different columns
df3 = df2.merge(df1.drop_duplicates('EW')[['EW']], left_on='AD', right_on='EW', how='left')
df3.FA=np.where(df2.AD.isin(df1.EW),df3.FA,np.nan)
df3 = df3[['AD','FA']]
print (df3)
       AD   FA
0  cheese  1.0
1  dwadaw  NaN

编辑1:

df3 = df2[df2.AD.isin(df1.EW)]
df3 = df3[['AD','FA']]
print (df3)
       AD   FA
0  cheese  1.0

细节:

print (df2.AD.isin(df1.EW))
0     True
1    False
Name: AD, dtype: bool

相关问题 更多 >