pandas 中是否有一种方法可以检查数据框列是否具有重复值,而不实际删除行? 我有一个函数可以删除重复的行,但是,我只希望它在特定列中实际存在重复项时运行。
目前,我将列中唯一值的数量与行数进行比较:如果唯一值的数量少于行数,则存在重复项并且代码运行。
if len(df['Student'].unique()) < len(df.index):
# Code to remove duplicates based on Date column runs
使用 pandas 是否有更简单或更有效的方法来检查特定列中是否存在重复值?
我正在使用的一些示例数据(仅显示两列)。如果找到重复项,则另一个函数确定要保留哪一行(日期最早的行):
Student Date
0 Joe December 2017
1 James January 2018
2 Bob April 2018
3 Joe December 2017
4 Jack February 2018
5 Jack March 2018
原文由 Jeff Mitchell 发布,翻译遵循 CC BY-SA 4.0 许可协议
主要问题
假设上面的数据框( df ),我们可以通过以下方式快速检查
Student
col 中是否重复:进一步阅读和参考
上面我们使用的是 Pandas 系列方法之一。 pandas DataFrame 有几个有用的 方法,其中两个是:
这些方法可以作为一个整体应用于 DataFrame,而不仅仅是上面的一个 Serie(列)。等价于:
然而,如果我们对整个框架感兴趣,我们可以继续做:
最后一个有用的提示。通过使用
keep
参数,我们通常可以跳过几行直接访问我们需要的内容:玩弄的例子
退货