比较两个数据帧并返回不同的值

时间:2019-06-28 10:26:24

标签: python pandas

我对编码还很陌生,并且陷入了一个问题。我有两个DF: df1包含TrailerID df2包含一个TrailerID和一个数字

如果预告片ID匹配,我想从df2中获取数字值并将其插入df1

我设法比较了列并返回1或0,但是现在我不确定如何从与1或0相对应的数字列中选择数据。

from pandas import pandas
import pandas as pd
import numpy as np

df1=pd.read_excel("sheet1.xlsx",sheet_name=0)
df2=pd.read_excel("sheet2.xlsx",sheet_name=0)

print(df1)
   TrailerID
0       abc
1       def
2       ghi
3       123
4       456
5       789

print(df2)
  TrailerID  Number
0       abc  123647
1       def  937217
2       ghi  282838
3       758  183650
4      sh67  182838
5       789  273747

df1['new'] = df2.TrailerID.isin(df1.TrailerID).astype(np.int8)

print(df1)
  TrailerID  new
0       abc    1
1       def    1
2       ghi    1
3       123    0
4       456    0
5       789    1

我在df1中有1和0的新列,但我需要它是df2中的数字值

1 个答案:

答案 0 :(得分:0)

这类似于SQL中的LEFT JOIN。

df3 = df1.merge(df2, how='left', on='TrailerID')