用熊猫将列值转换为行

时间:2018-09-30 04:30:34

标签: python pandas

我有一个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()不能为我做到这一点。 有人有主意吗?

1 个答案:

答案 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