为了账号安全,请及时绑定邮箱和手机立即绑定

为共享公共值的每一行合并 Dataframe 中列的内容

为共享公共值的每一行合并 Dataframe 中列的内容

缥缈止盈 2023-06-20 13:32:37
我在分配给不同个人的表中有数据。但是,很多数据基于 MD5 是相同的,我希望每个条目都归因于具有相同 MD5 的每个人。例如,输入数据可能如下所示:但是,我希望输出如下表所示。例如,A、C、E 的所有者相同,因为它们的 MD5 相同(欣赏 MD5 会更长,这只是为了说明)。类似地,对于 B、D、F,MD5 相同,因此 Owner 也被合并为所有 3 个条目。我写了一个有效的脚本(但效率非常低):md5OwnerDF = pd.DataFrame({"MD5 Digest":[],"All_Owners":[]})for md5 in uniqueTLMD5List:        # sub dataframe with md5        md5DF = df.loc[df['MD5 Digest'] == md5].copy()        # bring in owners of this sub dataframe (md5DF) and convert into unique list (ownerList)        ownerList = ';'.join([str(elem) for elem in md5DF.loc[:,'Owner'].unique().tolist()])        md5OwnerDF_temp = pd.DataFrame({"MD5 Digest":[md5],"All_Owners":[ownerList]})        md5OwnerDF = md5OwnerDF.append(md5CustodianDF_temp)有没有更好的方法可以在不迭代的情况下获得相同的结果?
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

你可以试试transform+groupby

df['new'] = df.roupby('ID')['MD5'].transform(','.join)


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信