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

how to convert header row into new columns in python pandas?

我有以下数据框:

A,B,C
1,2,3

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

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

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

您可以通过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