I am having following dataframe:
A,B,C 1,2,3 I have to convert above dataframe like following format:
cols,vals A,1 B,2 c,3 How to create column names as a new column in pandas?
You can transpose by T:
import pandas as pd df = pd.DataFrame({'A': {0: 1}, 'C': {0: 3}, 'B': {0: 2}}) print (df) A B C 0 1 2 3 print (df.T) 0 A 1 B 2 C 3 df1 = df.T.reset_index() df1.columns = ['cols','vals'] print (df1) cols vals 0 A 1 1 B 2 2 C 3 If DataFrame has more rows, you can use:
import pandas as pd df = pd.DataFrame({'A': {0: 1, 1: 9, 2: 1}, 'C': {0: 3, 1: 6, 2: 7}, 'B': {0: 2, 1: 4, 2: 8}}) print (df) A B C 0 1 2 3 1 9 4 6 2 1 8 7 df.index = 'vals' + df.index.astype(str) print (df.T) vals0 vals1 vals2 A 1 9 1 B 2 4 8 C 3 6 7 df1 = df.T.reset_index().rename(columns={'index':'cols'}) print (df1) cols vals0 vals1 vals2 0 A 1 9 1 1 B 2 4 8 2 C 3 6 7