Search code examples
pythonpandasdataframedata-extractiondata-wrangling

How to set name of columns from rows values?


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

Screenshot enter image description here


Solution

  • 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')