我有两个数据框df1和df2。 df2中的x,y值是df1中x,y值的子集。对于df2中的每个x,y行,我希望将df1中knn列的值更改为0,其中df2[x] = df1[x]且df2[y] = df1[y]。在下面的示例中,x,y值(1,1)和(1,2)是共同的,因此df1中的knn列将更改为[0, 0, 0, 0]。下面代码中的最后一行无法工作。我会感激任何指导。
import pandas as pd
df1_dict = {'x': ['1','1','1','1'],
'y': [1,2,3,4],
'knn': [1,1,0,0]
}
df2_dict = {'x': ['1','1'],
'y': [1,2]
}
df1 = pd.DataFrame(df1_dict, columns = ['x', 'y','knn'])
df2 = pd.DataFrame(df2_dict, columns = ['x', 'y'])
df1['knn']= np.where((df1['x']==df2['x']) and df1['y']==df2['y'], 0)