Estou tentando mesclar três dataframes usando intersection(). Como podemos verificar se todos os dataframes existem/foram inicializados antes de executar intersection() sem vários blocos de verificação if-else? Se algum dataframe não estiver atribuído, não o assuma durante a execução de intersection(). Às vezes, recebo o erro - UnboundLocalError: variável local 'df_2' referenciada antes da atribuição , porque o arquivo2 não existe.
OU existe alguma outra maneira fácil de conseguir isso?
Abaixo está minha abordagem:
if os.path.exists(file1):
df_1 = pd.read_csv(file1, header=None, names=header_1, sep=',', index_col=None)
if os.path.exists(file2):
df_2 = pd.read_csv(file2, header=None, names=header_2, sep=',', index_col=None)
if os.path.exists(file3):
df_3 = pd.read_csv(file3, header=None, names=header_3, sep=',', index_col=None)
common_columns = df_1.columns.intersection(df_2.columns).intersection(df_3.columns)
filtered_1 = df_1[common_columns]
filtered_2 = df_2[common_columns]
filtered_3 = df_3[common_columns]
concatenated_df = pd.concat([filtered_1, filtered_2, filtered_3], ignore_index=True)