根据两个数据框列的匹配创建另一个列

时间:2019-12-18 15:15:02

标签: python pandas numpy dataframe machine-learning

我有两个具有共同列ID的数据帧df1和df2。两个数据帧具有不同数量的行和列。 我想比较这两个数据框ID。我想在df1中创建另一列y,对于df1和df2中存在的所有通用ID,y的值应为0,否则为1。 例如df1是

Id col1 col2

1   Abc  def

2   Geh  ghk 

3   Abd  fg

1   Dfg  abc

df2是

Id  col3 col4

1    Dgh gjs 

2    Gsj aie 

最终数据框应为

Id  col1  col2 y

1   Abc   def  0

2   Geh   ghk  0

3   Abd   fg   1 

1   Dfg   abc  0

1 个答案:

答案 0 :(得分:1)

让我们先创建df1和df2:

df1=pd.DataFrame({'ID':[1,2,3,1], 'col1':['A','B','C', 'D'], 'col2':['C','D','E', 'F']})
df2=pd.DataFrame({'ID':[1,2], 'col3':['AA','BB'], 'col4':['CC','DD']})

这里,熊猫lambda函数很方便:

df1['y'] = df1['ID'].map(lambda x:0 if x in df2['ID'].values else 1)

df1
   ID col1 col2  y
0   1    A    C  0
1   2    B    D  0
2   3    C    E  1
3   1    D    F  0