如何在不重复计算的情况下转置多个列参数

时间:2018-06-18 20:25:33

标签: excel python-3.x pandas

我试图将具有不同参数的多个列转换为两列。我已尝试在Stackoverflow上的不同帖子中提到不同的方法,但结果总是给我重复的值,因此重复计算。任何帮助将非常感激。

这是原始数据:

这是我想要最终原始数据的格式:

谢谢!

1 个答案:

答案 0 :(得分:3)

使用pd.wide_to_long

pd.wide_to_long(df,
                ['Geo','Target Geo'],
                ['Name','ID','user_name','platform','ID2','Placement Name','ID3'],
                j='Codes',
                sep=' ',
                suffix='.')\
  .reset_index()\
  .drop('Codes',axis=1)

输出:

  Name   ID user_name platform  ID2 Placement Name    ID3 Global Target Global Geo  Target Geo
0  ABC  123       sky     blah  456             RV  56789                       US         9.0
1  ABC  123       sky     blah  456             RV  56789                       UK        10.0
2  ABC  123       sky     blah  456             RV  56789                       CN         9.0
3  ABC  123       sky     blah  456             FS  98765                       US         8.5
4  ABC  123       sky     blah  456             FS  98765                       UK         4.0
5  ABC  123       sky     blah  456             FS  98765                       DE         3.6