python – 在pandas DataFrame中查找重复行的索引
发布时间:2020-12-20 12:03:48 所属栏目:Python 来源:网络整理
导读:什么是在给定的DataFrame中查找相同行的索引而不迭代各行的pandas方法? 虽然可以找到具有unique = df [df.duplicated()]的所有唯一行,然后使用unique.iterrows()迭代唯一条目,并在pd.where()的帮助下提取相等条目的索引,这是熊猫的做法吗? 例: 给定以下结
什么是在给定的DataFrame中查找相同行的索引而不迭代各行的pandas方法?
虽然可以找到具有unique = df [df.duplicated()]的所有唯一行,然后使用unique.iterrows()迭代唯一条目,并在pd.where()的帮助下提取相等条目的索引,这是熊猫的做法吗? 例: | param_a | param_b | param_c 1 | 0 | 0 | 0 2 | 0 | 2 | 1 3 | 2 | 1 | 1 4 | 0 | 2 | 1 5 | 2 | 1 | 1 6 | 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 idx 0 0 0 0 (1,6) 1 0 2 1 (2,4) 2 2 1 1 (3,5) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Python正则表达式常用函数菜鸟教程
- 向Django添加简单自定义字段 – 如何编写南方自省规则
- easy_install 异常(zipimport.ZipImportError: can’t deco
- python – POST上的django-uni-form helpers和CSRF标签
- python通过urllib2提交http post请求
- python – Fedora上的psycopg2
- python – 递归地按键对嵌套的OrderedDict进行排序
- Python是否具有java.lang.Math.nextUp的等价物?
- 应该使用哪个版本的Python?
- 解决Linux系统中python matplotlib画图的中文显示问题