Вы можете использовать np.where
и проверить, где df_csv[df_xml.columns]
равно df_xml
, если True
, то значение равно 'SAME'
, иначе вы можете объединить значения обоих фреймов данных, как вы делаем.
SETUP
df_csv = pd.DataFrame({'a':range(4),'b':[0,0,1,1],'c':list('abcd')})
df_xml = pd.DataFrame({'b':[0,2,3,1],'c':list('bbce')})
МЕТОД
df_excel = pd.DataFrame( np.where( df_csv[df_xml.columns] == df_xml, #find where
'SAME', #True
df_csv[df_xml.columns].astype(str) + ' | ' + df_xml.astype(str)), #False
columns=df_xml.columns
index=df_xml.index)
print (df_excel)
b c
0 SAME a | b
1 0 | 2 SAME
2 1 | 3 SAME
3 SAME d | e
То же самое, что я получил с вашим методом.