两个Pandas数据帧之间的vlookup

时间:2016-10-12 07:48:39

标签: python pandas

我有2个pandas Dataframes如下。

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

2 个答案:

答案 0 :(得分:5)

您可以使用merge,默认情况下是内部联接,因此省略how=inner,如果Dataframes中只有一个公共列,您也可以省略参数{{1 }}:

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 的{​​{1}}的

mapISIN

Series

答案 1 :(得分:2)

您可以使用pd.merge自动在ISIN上进行内部联接。以下代码行可以帮助您:

df3 = pd.merge(df1, df2)[['Security', 'Value']]

结果为df3

  Security  Value
0      DEF    100
1      JHK    200
2      OPQ    300

完全可重现的代码示例如下所示:

import pandas as pd

df1 = pd.DataFrame({
        'Security': ['ABC', 'DEF', 'JHK', 'LMN', 'OPQ'],
        'ISIN' : ['I1', 'I2', 'I3', 'I4', 'I5']
    })
df2 = pd.DataFrame({
        'Value': [100, 200, 300],
        'ISIN' : ['I2', 'I3', 'I5']
    })

df3 = pd.merge(df1, df2)[['Security', 'Value']]
print(df3)