Процесс обработки:.
- pandas .eq () используется для создания маски путем сравнения двух кадров данных.
- создает сравнение между df1 и df2 и df2 и df1.
- изменить порядок столбцов, объединив каждый из них.
maskA = df1.eq(df2)
JA AB BC fas waa ad
1 True True True True True True
2 True False True True False True
3 True True False True True True
4 True True True False True False
5 True False False False False True
6 True True True True True True
7 True False True False False True
8 True True False True True True
9 True False False True False True
10 True True True True True False
df_1 = df1[~maskA].fillna('')
maskB = df2.eq(df1)
df_2 = df2[~maskB].fillna('')
df_1['JA'].update(df1['JA'])
df_2['JA'].update(df2['JA'])
df_all = pd.merge(df_1, df_2, on='JA', suffixes=('_df1','_df2')).sort_index(axis=1)
cols = ['JA','AB_df1','AB_df2','BC_df1','BC_df2','ad_df1','ad_df2','fas_df1','fas_df2','waa_df1','waa_df2']
df_all.loc[:,cols]
df_all
JA AB_df1 AB_df2 BC_df1 BC_df2 ad_df1 ad_df2 fas_df1 fas_df2 waa_df1 waa_df2
0 1
1 22 a e ace 78 18
2 36 4 1
3 45 as ms 2 12
4 51 5 25 5
5 61
6 897 a paa 13 23 34
7 88 11
8 29 jaa aa 1 45 5
9 18 aa a