【发布时间】:2016-08-30 11:16:30
【问题描述】:
我有以下数据框:
A,B,C
1,2,3
我必须将上面的数据框转换成以下格式:
cols,vals
A,1
B,2
c,3
如何在 pandas 中创建列名作为新列?
【问题讨论】:
标签: python python-2.7 pandas dataframe transpose
我有以下数据框:
A,B,C
1,2,3
我必须将上面的数据框转换成以下格式:
cols,vals
A,1
B,2
c,3
如何在 pandas 中创建列名作为新列?
【问题讨论】:
标签: python python-2.7 pandas dataframe transpose
你可以通过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
【讨论】: