比较一个数据框中的两列的行(如果存在)蟒蛇

时间:2018-08-08 07:07:22

标签: python pandas dataframe

我有一个名为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,c2combined的值一起来,如果它们存在于specific中,请在combined中添加一列label并放入1,如果未放入0

因此,输出数据帧将是这样:

     c1    c2    label
    dr123 di878    0
    dr987 di082    1
    dr751 di715    1
    dr156 di083    0

我需要一种有效的方法,因为我合并的数据框有约800万行,请帮忙吗?

2 个答案:

答案 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