使用熊猫一起比较多个列值

Sak*_*eer 4 python excel dataframe pandas

我知道如果我们只一起检查两列,我可以像下面那样做。

df['flag'] = df['a_id'].isin(df['b_id'])
Run Code Online (Sandbox Code Playgroud)

其中df是一个数据帧,并且a_idb_id是数据帧的两列。它将根据匹配结果返回TrueFalse值。但是我需要比较多个列。

例如:如果有a_id , a_region, a_ip, b_id, b_region and b_ip列。我想像下面这样比较

在此处输入图片说明

a_key = df['a_id'] + df['a_region] + df['a_ip']
b_key = df['b_id'] + df['b_region] + df['b_ip']

df['flag'] = a_key.isin(b_key)
Run Code Online (Sandbox Code Playgroud)

以上代码总是以某种方式返回False值。输出应如下所示,

在此处输入图片说明

由于存在匹配项,因此第一行标志将为True。

a_key变成2a10 与最后一行匹配b_key (2a10)

hac*_*315 6

You were going in the right direction, just use:

a_key = df['a_id'].astype(str) + df['a_region'] + df['a_ip'].astype(str)
b_key = df['b_id'].astype(str) + df['b_region'] + df['b_ip'].astype(str)

a_key.isin(b_key)
Run Code Online (Sandbox Code Playgroud)

Mine is giving below results:

0     True
1    False
2    False
Run Code Online (Sandbox Code Playgroud)