#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)