python – 在pandas DataFrame中查找重复行的索引

python – 在pandas DataFrame中查找重复行的索引,第1张

概述什么是在给定的DataFrame中查找相同行的索引而不迭代各行的pandas方法? 虽然可以找到具有unique = df [df.duplicated()]的所有唯一行,然后使用unique.iterrows()迭代唯一条目,并在pd.where()的帮助下提取相等条目的索引,这是熊猫的做法吗? 例: 给定以下结构的DataFrame: | param_a | param_b | param_c 什么是在给定的DataFrame中查找相同行的索引而不迭代各行的pandas方法?

虽然可以找到具有unique = df [df.duplicated()]的所有唯一行,然后使用unique.iterrows()迭代唯一条目,并在pd.where()的帮助下提取相等条目的索引,这是熊猫的做法吗?

例:
给定以下结构的DataFrame:

| param_a | param_b | param_c1 | 0       | 0       | 02 | 0       | 2       | 13 | 2       | 1       | 14 | 0       | 2       | 15 | 2       | 1       | 16 | 0       | 0       | 0

输出:

[(1,6),(2,4),(3,5)]
解决方法 对所有欺骗行使用参数 duplicated和keep = False,然后按所有列分组并将索引值转换为元组,最后将输出系列转换为列表:

df = df[df.duplicated(keep=False)]df = df.groupby(df.columns.toList()).apply(lambda x: tuple(x.index)).toList()print (df)[(1,5)]

如果你还想看到重写值:

df1 = (df.groupby(df.columns.toList())       .apply(lambda x: tuple(x.index))       .reset_index(name='IDx'))print (df1)   param_a  param_b  param_c     IDx0        0        0        0  (1,6)1        0        2        1  (2,4)2        2        1        1  (3,5)
总结

以上是内存溢出为你收集整理的python – 在pandas DataFrame中查找重复行的索引全部内容,希望文章能够帮你解决python – 在pandas DataFrame中查找重复行的索引所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1194047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存