我有一个pd.DataFrame
,我想在其中将某些列转换为行。我在下面的示例中有两个具有多个目标测量值的样本。我想打破目标['t1', 't2', 't3']
并将它们拆分为带有样本编号的新目标行。是否有比for循环更好的方法将一系列值(按列)转换为行?
#The entry I have:
pd.DataFrame({'Sample':[0,1],
't1':[2,3],
't2':[4,5],
't3':[6,7]})
# the output I'm expecting:
pd.DataFrame({'Sample':[0,0,0,1,1,1],
'targets':[2,4,6,3,5,7]})
我认为pd.pivot_table()
不能为我做到这一点。
有人有主意吗?
答案 0 :(得分:1)
您正在寻找melt
pd.DataFrame({'Sample':[0,1],
't1':[2,3],
't2':[4,5],
't3':[6,7]}).melt('Sample')
Out[74]:
Sample variable value
0 0 t1 2
1 1 t1 3
2 0 t2 4
3 1 t2 5
4 0 t3 6
5 1 t3 7