代码之家  ›  专栏  ›  技术社区  ›  Laurent R

将列值转换为行

  •  1
  • Laurent R  · 技术社区  · 7 年前

    我有一个 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 回复  |  直到 7 年前
        1
  •  1
  •   BENY    7 年前

    你在找什么 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