用户登录
用户注册

分享至

在 Python Pandas 中删除多列中的所有重复行

  • 作者: 夏丶biubiu
  • 来源: 51数据库
  • 2022-10-26

问题描述

pandas drop_duplicates 函数非常适合唯一化"数据帧.但是,要传递的关键字参数之一是 take_last=True 或 take_last=False,而我想删除在列子集中重复的所有行.这可能吗?

The pandas drop_duplicates function is great for "uniquifying" a dataframe. However, one of the keyword arguments to pass is take_last=True or take_last=False, while I would like to drop all rows which are duplicates across a subset of columns. Is this possible?

    A   B   C
0   foo 0   A
1   foo 1   A
2   foo 1   B
3   bar 1   A

例如,我想删除与列 A 和 C 匹配的行,所以这应该删除第 0 行和第 1 行.

As an example, I would like to drop rows which match on columns A and C so this should drop rows 0 and 1.

推荐答案

现在有了 drop_duplicates 和 keep 参数.

This is much easier in pandas now with drop_duplicates and the keep parameter.

import pandas as pd
df = pd.DataFrame({"A":["foo", "foo", "foo", "bar"], "B":[0,1,1,1], "C":["A","A","B","A"]})
df.drop_duplicates(subset=['A', 'C'], keep=False)
软件
前端设计
程序设计
Java相关