我这里有两个数据帧:
答:d e,d c,a c,
B:a c,d c,
有不同数量的线。(没有相等的线)。如果A中的一行与B中的一行匹配。我们用A的第一列替换A的第二列。所以结果应该是:
C:d e,d d,a a,
答案 0 :(得分:1)
您可以在所有列上执行左侧join
两个数据框,指定indicator=True
,以便结果保留 _merge 列,指示A中的行是否匹配一个来自B,并相应地更新第二列:
A_ = A.merge(B.drop_duplicates(), indicator=True, how="left")
# if the row comes from left only then don't make change, otherwise update the second column
# with first column value
A_[1] = A_[1].where(A_._merge == "left_only", A_[0])
A_.drop('_merge', 1)
# 0 1
#0 d e
#1 d d
#2 a a
A = pd.DataFrame([['d','e'],['d','c'],['a','c']])
B = pd.DataFrame([['a','c'],['d','c']])