How to rename columns with multiple levels after pandas pivot operation? Here's some code to generate test data: import pandas as pd df = pd.DataFrame({ 'c0': ['A','A','B','C'], 'c01': ['A','A1','B','C'], 'c02': ['b','b','d','c'], 'v1': [1, 3,4,5], 'v2': [1, 3,4,5]}) print(df) gives a test dataframe: c0 c01 c02 v1 v2 0 A A b 1 1 1 A A1 b 3 3 2 B B d 4 4 3 C C c 5 5 applying pivot df2 = pd.pivot_table(df, index=["c0"], columns=["c01","c02"], values=["v1","v2"]) df2 = df2.reset_index() gives how to rename the columns by joining levels? with format <c01 value>_<c02 value>_<v1> for example first column should look like "A_b_v1" The order of joining levels isn't really important to me. Continue reading...