如何将标题行转换为python pandas中的新列?

时间:2016-08-30 11:16:30

标签: python python-2.7 pandas dataframe transpose

我有以下数据框:

A,B,C
1,2,3

我必须按以下格式转换以上数据框:

cols,vals
A,1
B,2
c,3

如何在pandas中创建列名作为新列?

1 个答案:

答案 0 :(得分:1)

您可以按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

如果DataFrame有更多行,您可以使用:

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