【问题标题】:exploding multiple columns in Pandas在 Pandas 中爆炸多个列
【发布时间】:2022-11-03 01:14:12
【问题描述】:

需要在 pandas 中分解多列数据 输入数据框:

df
SRCA    SRCB  SRC_CNTA  SRC_CNTB
A,B     G,H     1           1
E,C,D   Z,Y,K   2           2

用于此的代码是: df.set_index(['SRC_CNTA','SRC_CNTB']).apply(pd.Series.explode).reset_index() 这将排除索引列并对剩余列应用explode。

预期输出:

SRCA    SRCB  SRC_CNTA  SRC_CNTB  SRCA_EXP  SRCB_EXP
A,B     G,H     1           1       A       G   
A,B     G,H     1           1       B       H
E,C,D   Z,Y,K   2           2       E       Z
E,C,D   Z,Y,K   2           2       C       Y
E,C,D   Z,Y,K   2           2       D       K

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    我们可以对splitexplode 两列都使用apply(矢量化版本,所以它并不慢)。然后我们join 回到索引:

    expl = df[["SRCA", "SRCB"]].apply(lambda col: col.str.split(",").explode()).add_suffix("_EXP")
    df = df.join(expl).reset_index(drop=True)
    
        SRCA   SRCB  SRC_CNTA  SRC_CNTB SRCA_EXP SRCB_EXP
    0    A,B    G,H         1         1        A        G
    1    A,B    G,H         1         1        B        H
    2  E,C,D  Z,Y,K         2         2        E        Z
    3  E,C,D  Z,Y,K         2         2        C        Y
    4  E,C,D  Z,Y,K         2         2        D        K
    

    【讨论】:

      猜你喜欢
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      • 2016-08-02
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多