【问题标题】:Concatenating values into column from multiple rows将值从多行连接到列中
【发布时间】:2022-08-14 16:38:03
【问题描述】:

我有一个只包含重复的“MainID”行的数据框。
一个 MainID 可能有多个辅助 ID (SecID)。
如果有一个共同的 MainID,我想连接 SecID 的值,并在 SecID col 中加入 \':\'。
实现这一目标的最佳方法是什么?
是的,我知道这不是最佳实践,但它是软件想要的结构。

当前的:

data={\'MainID\':[\'NHFPL0580\',\'NHFPL0580\',\'NHFPL0582\',\'NHFPL0582\'],\'SecID\':[\'G12345\',\'G67890\',\'G11223\',\'G34455\']}
df=pd.DataFrame(data)
print(df)

      MainID   SecID
0  NHFPL0580  G12345
1  NHFPL0580  G67890
2  NHFPL0582  G11223
3  NHFPL0582  G34455

预期结构

MainID     SecID
NHFPL0580  G12345:G67890     
NHFPL0582  G11223:G34455

    标签: python pandas dataframe


    【解决方案1】:

    尝试:

    df.groupby('MainID').apply(lambda x: ':'.join(x.SecID))
    

    【讨论】:

    • 那是完美的,我的伙计。欣赏它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    相关资源
    最近更新 更多