我有一个名为combined
的数据框,它有两列c1,c2
组合:
c1 c2
dr123 di878
dr987 di082
dr751 di715
dr156 di083
另一个名为specific
的数据帧具有c1,c2,c3
特定:
c1 c2 c3
dr987 di082 ekeodk
dr805 di827 sbdxdp
dr852 di737 pmzqde
dr751 di715 nedoas
我要比较{{1}中c1,c2
中combined
的值一起来,如果它们存在于specific
中,请在combined
中添加一列label
并放入1,如果未放入0
因此,输出数据帧将是这样:
c1 c2 label
dr123 di878 0
dr987 di082 1
dr751 di715 1
dr156 di083 0
我需要一种有效的方法,因为我合并的数据框有约800万行,请帮忙吗?
答案 0 :(得分:0)
使用
DataRow
或者,看看设置散列是否有帮助
ExecuteNonQuery
答案 1 :(得分:0)
您可以这样做:
x = pd.merge(combine, specific, how = 'left', on = ['c1', 'c2'], indicator = 'Exist')
x['Exist'] = x['Exist'].map({'left_only': 0, 'both': 1})
combine['label'] = x['Exist']
出局:
c1 c2 label
0 dr123 di878 0
1 dr987 di082 1
2 dr751 di715 1
3 dr156 dr083 0