pandas实现列转行
pandas实现列转行
1、原始数据如下:
姓名 学号 英语 数学 语文
A 1001 90 80 85
B 1002 60 98 90
C 1003 70 80 75
2、要转换为如下格式:
姓名 学号 科目 分数
A 1001 英语 90
A 1001 数学 80
A 1001 语文 85
B 1002 英语 60
B 1002 数学 98
B 1002 语文 90
C 1003 英语 70
C 1003 数学 80
C 1003 语文 75
代码实现如下:
df = pd.DataFrame({‘姓名’: [‘A’,‘B’,‘C’],
‘学号’:[‘1001’,‘1002’,‘1003’],
‘英语’:[90,60,70],
‘数学’:[80,98,80],
‘语文’:[85,90,75]})
tmp=df.set_index([‘姓名’,‘学号’]).stack().reset_index()
tmp.columns=[‘姓名’,‘学号’,‘科目’,‘分数’]
print(tmp.head(10))