我不确定如何利用熊猫来解决这个问题。我正在尝试将一个数据帧中的每个ID的值与其他数据帧进行比较。下面是一个示例。
Data Frame A Data Frame B Data Frame C
ID Val ID Val ID Val
0 12345 10 0 12345 11 0 12345 11
1 23456 12 1 23456 12 1 23456 12
2 34567 13 2 34567 13 2 34567 13
3 45678 16 3 56789 12
假设存在三个数据帧(dfa,dfb和dfc),每个数据帧都有ID和值。 ID 12345的值为10、11和11,因此将被忽略。所有三个数据帧的ID 23456的值均为12,因此将以某种方式对其进行标记。也许打印出ID 23456是相同的。往前看,由于ID 34567具有相同的值,因此同样适用于ID 34567,但由于ID 45678在数据帧B或数据帧C中不存在,因此将被忽略。
我已经想到了一些方法,但是它涉及字典和列表。我想看看是否有办法通过继续利用熊猫来更好地做到这一点。
答案 0 :(得分:1)
df = A.merge(B,left_on='ID',right_on='ID').merge(C,left_on='ID',right_on='ID').rename({'Val_x':'Val_A','Val_y':'Val_B','Val':'Val_C'})
df['flag']=0
df.loc[(df['Val_A']==df['Val_B']) & (df['Val_B']==df['Val_C']),'flag']=1
标志列就是您想要的。