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

如何分配唯一的ID以检测熊猫数据框中的重复行?

如何分配唯一的ID以检测熊猫数据框中的重复行?

神不在的星期二 2021-04-10 18:19:21
我正在处理一个大熊猫数据框,其中有几列非常像这样:A      B         C    D   John   Tom       0    1Homer  Bart      2    3Tom    Maggie    1    4 Lisa   John      5    0Homer  Bart      2    3Lisa   John      5    0Homer  Bart      2    3Homer  Bart      2    3Tom    Maggie    1    4如何为每个重复的行分配唯一的ID?例如:A      B         C    D      new_idJohn   Tom       0    1.2      1Homer  Bart      2    3.0      2Tom    Maggie    1    4.2      3Lisa   John      5    0        4Homer  Bart      2    3        5Lisa   John      5    0        4Homer  Bart      2    3.0      2Homer  Bart      2    3.0      2Tom    Maggie    1    4.1      6我知道我可以duplicate用来检测重复的行,但是我无法想象正在增加这些行。我尝试过了:df.assign(id=(df.columns).astype('category').cat.codes)df但是,无法正常工作。如何获取用于检测重复行组的唯一ID?
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

对于小型数据框,您可以将行转换为元组(可以进行哈希处理),然后使用pd.factorize

df['new_id'] = pd.factorize(df.apply(tuple, axis=1))[0] + 1

groupby 对于较大的数据框,效率更高:

df['new_id'] = df.groupby(df.columns.tolist(), sort=False).ngroup() + 1


查看完整回答
反对 回复 2021-04-20
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

按您要查找重复项的列进行分组并使用ngroup

df['new_id'] = df.groupby(['A','B','C','D']).ngroup()


查看完整回答
反对 回复 2021-04-20
  • 2 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

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