【问题标题】:Combine rows based on column names pandas根据列名 pandas 组合行
【发布时间】:2021-08-21 20:57:56
【问题描述】:

我有一个看起来像这样的 df

NAME              FORMULA.   CHARGE MNX_ID       CHEBI_ID   HMDB_ID
156 (+)-alpha-pinene    C10H16  0   NaN           <NA>    HMDB0652  
155 (+)-alpha-pinene    C10H16  0   NaN           36740     Nan
154 (+)-alpha-pinene    C10H16  0   MNXM163755    NaN      Nan

我想按 NAME FORMULA 和 CHARGE 对行进行分组,然后将后面的列组合起来。

>   NAME              FORMULA.   CHARGE MNX_ID       CHEBI_ID   HMDB_ID
>   (+)-alpha-pinene    C10H16  0   MNXM163755    36740   HMDB0652

【问题讨论】:

    标签: pandas dataframe join pandas-groupby


    【解决方案1】:

    使用stack/unstack:

    # df = df.replace('Nan', np.NAN)
    df = df.set_index(['NAME', 'FORMULA.', 'CHARGE']).stack().unstack().reset_index()
    

    输出:

                   NAME FORMULA.  CHARGE      MNX_ID CHEBI_ID   HMDB_ID
    0  (+)-alpha-pinene   C10H16       0  MNXM163755  36740.0  HMDB0652
    

    【讨论】:

      猜你喜欢
      • 2017-10-09
      • 2021-10-31
      • 2016-01-20
      • 1970-01-01
      • 2022-08-11
      • 1970-01-01
      • 2019-01-11
      • 1970-01-01
      • 2016-05-01
      相关资源
      最近更新 更多