2个Pandas数据框架之间的vlookup[英] vlookup between 2 Pandas dataframes

本文是小编为大家收集整理的关于2个Pandas数据框架之间的vlookup的处理方法,想解了2个Pandas数据框架之间的vlookup的问题怎么解决?2个Pandas数据框架之间的vlookup问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有 2 个熊猫数据框,如下所示.

DF1:

Security     ISIN
ABC           I1 
DEF           I2
JHK           I3
LMN           I4
OPQ           I5

和 DF2:

ISIN      Value
 I2        100
 I3        200
 I5        300

我想最终得到如下所示的第三个数据框:

DF3:

Security   Value
 DEF       100
 JHK       200
 OPQ       300

推荐答案

你可以使用 merge,默认是内连接,所以省略how=inner,如果两个Dataframes只有一个公共列,也可以省略参数on='ISIN':

df3 = pd.merge(df1, df2)
#remove column ISIN
df3.drop('ISIN', axis=1, inplace=True)
print (df3)
  Security  Value
0      DEF    100
1      JHK    200
2      OPQ    300

map栏ISIN 由 Series 来自 df1:

print (df1.set_index('ISIN')['Security'])
ISIN
I1    ABC
I2    DEF
I3    JHK
I4    LMN
I5    OPQ
Name: Security, dtype: object

#create new df by copy of df2
df3 = df2.copy()
df3['Security'] = df3.ISIN.map(df1.set_index('ISIN')['Security'])
#remove column ISIN
df3.drop('ISIN', axis=1, inplace=True)
#change order of columns
df3 = df3[['Security','Value']]
print (df3)
  Security  Value
0      DEF    100
1      JHK    200
2      OPQ    300

本文地址:https://www.itbaoku.cn/post/1728032.html