📜  在 python df 中获取重复并删除但保持最后 - Python (1)

📅  最后修改于: 2023-12-03 14:51:05.050000             🧑  作者: Mango

在 python df 中获取重复并删除但保持最后

在 pandas 中,可以使用 duplicates() 函数获取数据框中的重复行。该函数返回一个布尔 Series,其中指示每行是否是重复行。根据条件进行过滤即可删除重复行。

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 5],
                   'B': [5, 6, 5, 7, 8, 8],
                   'C': [0, 0, 1, 1, 1, 2]})

# 查看重复行
duplicated = df.duplicated(keep='last')
print(duplicated)

# 删除重复行
df = df[~duplicated]
print(df)

输出结果为:

0     False
1     False
2     False
3     False
4      True
5     False
dtype: bool

   A  B  C
0  1  5  0
1  2  6  0
2  3  5  1
3  4  7  1
5  5  8  2

其中 keep='last' 参数表示保留最后一行,如果想保留第一行,可以设置为 keep='first'。删除重复行的方法是使用 ~ 取反操作符,将重复行的布尔 Series 取反后进行过滤。

值得注意的是,如果数据框中有多个列,我们可以指定 subset 参数,来选择希望根据哪些列进行重复行的判断。

参考资料: