【发布时间】: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 列中获得 1 或 0 的值。
一旦完成,我们将获取b_id 的第一个值,然后与a_id 列中的所有值进行比较,并相应地更新b_flag 列。
最后我会得到以下数据。
我需要使用 pandas,因为我正在处理大量数据。以下是我的发现,但它仅与b_id 的第一个值进行比较。例如,它将123(a_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)
【问题讨论】:
-
df.a_id.isin(df.b_id).astype(int)会做你的工作
标签: excel python-3.x pandas dataframe