我要转换此数据框:
Name Address Town Central1 Central2 Central3 Central4
Jean blabla blabla2 1 2 3 NaN
James BLABLA BLABLA2 5 6 NaN 8
此数据框:
Name Address Town Central Code
Jean blabla blabla2 Central1 1
Jean blabla blabla2 Central2 2
Jean blabla blabla2 Central3 3
Jean blabla blabla2 Central4 NaN
James BLABLA BLABLA2 Central1 5
James BLABLA BLABLA2 Central2 6
James BLABLA BLABLA2 Central3 NaN
James BLABLA BLABLA2 Central4 8
这是一种堆栈,但我不想堆栈所有数据框。
答案 0 :(得分:2)
只需检查melt
s = df.melt(['Name','Address','Town'],var_name = 'Central',value_name = 'Code')
s
Out[526]:
Name Address Town Central Code
0 Jean blabla blabla2 Central1 1.0
1 James BLABLA BLABLA2 Central1 5.0
2 Jean blabla blabla2 Central2 2.0
3 James BLABLA BLABLA2 Central2 6.0
4 Jean blabla blabla2 Central3 3.0
5 James BLABLA BLABLA2 Central3 NaN
6 Jean blabla blabla2 Central4 NaN
7 James BLABLA BLABLA2 Central4 8.0