我想转换此数据框:
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
这是一种堆栈,但我不想堆栈所有数据框。
最佳答案
只需检查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
关于python - 将列标题转换为值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57047645/