【问题标题】:Python pandas dataframe: dataframe to another dataframePython pandas数据框:数据框到另一个数据框
【发布时间】:2020-10-01 00:34:18
【问题描述】:

我需要 Python pandas 数据框方面的帮助。 我有以下格式的数据框(请参阅当前数据框),我的要求是转换为我粘贴在下面的不同格式的另一个数据框(请参阅所需的数据框)。任何人都可以帮助我如何实现所需的输出。

当前数据框

Name1                   Name2                       Score
BELFIUS INSURANCE       BELFIUS INSURANCES          0.79
BELFIUS INSURANCE       BELFIUS                     0.50
BELFIUS INSURANCE       BELFIUS T                   0.31
AIR PRODUCTS            AIR PRODUCT                 0.78
AIR PRODUCTS            AIR PRO                     0.63
AIR PRODUCTS            PRODUCTS                    0.39
ARDAGH GLASS            ARDAGH                      0.60

所需的数据帧

Name1               M1                 Score1    M2        Score2     M3                  Score3
BELFIUS INSURANCE   BELFIUS INSURANCES  0.79    BELFIUS    0.50       BELFIUS T           0.31
AIR PRODUCTS        AIR PRODUCT         0.78    AIR PRO    0.63       PRODUCTS            0.39
ARDAGH GLASS        ARDAGH              0.60    nan        nan        nan                 nan

        

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    这实质上是以一列为轴的:

    out_df = (df.assign(col=df.groupby('Name1').cumcount()+1)
       .pivot_table(index='Name1', columns='col', aggfunc='first')
       .swaplevel(0,1,axis=1)
       .sort_index(axis=1)
    )
    out_df.columns = [f"{y}{x}" if y=="Score" else f"M{x}" for x,y in out_df.columns]
    out_df = out_df.reset_index()
    

    输出:

        Name1              M1                    Score1  M2         Score2  M3           Score3
    --  -----------------  ------------------  --------  -------  --------  ---------  --------
     0  AIR PRODUCTS       AIR PRODUCT             0.78  AIR PRO      0.63  PRODUCTS       0.39
     1  ARDAGH GLASS       ARDAGH                  0.6   nan        nan     nan          nan
     2  BELFIUS INSURANCE  BELFIUS INSURANCES      0.79  BELFIUS      0.5   BELFIUS T      0.31
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 2019-09-28
      • 1970-01-01
      相关资源
      最近更新 更多