首页 > 解决方案 > 使用熊猫将一列值与另一列的所有值进行比较

问题描述

我有一个包含以下值的 excel 文件

在此处输入图像描述

我需要将a_idvalue 与 的所有值进行比较b_id,如果匹配,我必须将 的值更新a_flag1else 0

例如取a_tagie 中的第一个值;123然后比较 的所有值b_id(113,211,222,123)。当它到达时123b_id我们可以看到它匹配。所以我们将更新a_flagas的值1

就像那样取 的所有值a_id并与 的所有值进行比较b_id。因此,在完成所有操作后,我们将在列中1或列中获得价值。0a_flag

完成后,我们将取第一个值,b_id然后与列中的所有值进行比较a_id并相应地更新b_flag列。

最后我将有以下数据。

在此处输入图像描述

我需要使用熊猫,因为我正在处理大量数据。以下是我的发现,但它仅与 的第一个值进行比较b_id。例如,它将123a_id第一个值)与113仅(b_id第一个值)进行比较。

import pandas as pd 
df1 = pd.read_excel('system_data.xlsx')
df1['a_flag'] = (df3['a_id'] == df3['b_id']).astype(int)

标签: excelpython-3.xpandasdataframe

解决方案


用于Series.isin测试成员资格:

df1['a_flag'] = df3['a_id'].isin(df3['b_id']).astype(int)
df1['b_flag'] = df3['b_id'].isin(df3['a_id']).astype(int)

推荐阅读