how can I set up the column name as shown in the picture attached? I have joined multiple dfs but generates non-representative names for the columns.
dfs=
[data_3,data_4,data_5,data_6,data_7,data_8,data_9,data_11,data_12,data_13,data_14]
df_final = reduce(lambda left,right: pd.merge(left,right,on='date'), dfs)
df_final.set_index('date')
As discussed in comments , you can rename the columns in the dataframes based on an enumerator:
new_dfs = [i.rename(columns =
dict(zip(i.columns.difference(['date']),i.columns.difference(['date']) + f"_dfno_{e}")))
for e,i in enumerate(dfs,3)]
Then try this under reduce
:
df_final = reduce(lambda left,right: pd.merge(left,right,on='date'), new_dfs )
df_final.set_index('date')