首页 > 解决方案 > 如何在不重复计算的情况下转置多个列参数

问题描述

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

这是原始数据:

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

谢谢!

标签: excelpython-3.xpandas

解决方案


使用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

推荐阅读