我有两个具有共同列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
答案 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