我有两个数据帧df1(记录35k)和df2(记录100k)。在df1 ['col1']和df2 ['col3']中,我有唯一的ID。我想将df1 ['col1']与df2 ['col3']匹配。如果它们匹配,我想用另外一列更新df1,说df1 ['Match']的值为true,如果不匹配,则更新为False。我只想针对匹配和不匹配的记录映射这个TRUE和False值。
我正在使用.isin()
功能,我得到了正确的匹配,但没有匹配计数,但是无法正确映射它们。
Match = df1['col1'].isin(df2['col3'])
df1['match'] = Match
我还通过传递参数how=right
使用了合并功能,但没有得到结果。
答案 0 :(得分:0)
使用df.loc
索引:
df1['Match'] = False
df1.loc[df1['col1'].isin(df2['col3']), 'Match'] = True
答案 1 :(得分:0)
您可以简单地执行以下操作:
df1['Match'] = df1['col1'].isin(df2['col3'])
例如:
import pandas as pd
data1 = [1,2,3,4,5]
data2 = [2,3,5]
df1 = pd.DataFrame(data1, columns=['a'])
df2 = pd.DataFrame(data2,columns=['c'])
print (df1)
print (df2)
df1['Match'] = df1['a'].isin(df2['c']) # if matches it returns True else False
print (df1)
输出:
a
0 1
1 2
2 3
3 4
4 5
c
0 2
1 3
2 5
a Match
0 1 False
1 2 True
2 3 True
3 4 False
4 5 True