【问题标题】:compare one column value with all the values of other column using pandas使用熊猫将一列值与另一列的所有值进行比较
【发布时间】:2019-09-11 10:07:58
【问题描述】:

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

我需要将a_id 的值与b_id 的所有值进行比较,如果匹配,我必须将a_flag 的值更新为1,否则0

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

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

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

最后我会得到以下数据。

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

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

【问题讨论】:

  • df.a_id.isin(df.b_id).astype(int) 会做你的工作

标签: excel python-3.x pandas dataframe


【解决方案1】:

使用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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2017-01-31
    • 2021-10-27
    相关资源
    最近更新 更多