сравните значение одного столбца со всеми значениями другого столбца, используя pandas

#excel #python-3.x #pandas #dataframe

#excel #python-3.x #pandas #фрейм данных

Вопрос:

У меня есть один файл Excel, который содержит следующие значения

введите описание изображения здесь

Мне нужно сравнить a_id значение со всеми значениями b_id , и если оно совпадает, я должен обновить значение a_flag до 1 иного 0 .

Например, возьмите первое значение в a_tag ie; 123 затем сравните все значения b_id(113,211,222,123) . Когда оно достигает 123 в b_id , мы видим, что оно совпадает. Поэтому мы обновим значение a_flag как 1 .

Точно так же возьмите все значения a_id и сравните со всеми значениями b_id . Итак, после того, как все сделано, у нас будет значение либо 1 , либо 0 в a_flag столбце.

Как только это будет сделано, мы возьмем первое значение 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)
  

Комментарии:

1. df.a_id.isin(df.b_id).astype(int) выполнит вашу работу

Ответ №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)