优草派 > Python

pandas查看重复的行

赵文博         优草派

Pandas是一个数据分析工具包,它提供了很多方便的工具,可以对数据进行操作、分析和可视化。在数据处理的过程中,有时候需要查看是否存在重复的行,这时候就需要用到Pandas中的一些函数来进行操作。一、Pandas中的duplicated函数

Pandas中的duplicated函数可以用来查看DataFrame中是否存在重复的行。它的用法如下:

pandas查看重复的行

df.duplicated(subset=None, keep='first')

其中,subset参数表示要查看的列,默认值为None表示查看所有列;keep参数表示保留哪些重复的行,取值可以是'first'、'last'和False,默认值为'first'表示保留第一次出现的重复行。

例如,我们有如下的数据:

import pandas as pd

data = {'name': ['Tom', 'Jerry', 'Tom', 'Bob'],

'age': [20, 21, 20, 22],

'gender': ['M', 'M', 'M', 'F']}

df = pd.DataFrame(data)

现在我们想查看是否存在重复的行,可以用如下的代码:

df.duplicated()

输出结果如下:

0 False

1 False

2 True

3 False

dtype: bool

可以看到,第3行是重复行,因为它与第1行的数据完全相同。

如果我们想查看每一行是否存在重复的行,可以将keep参数设置为False,代码如下:

df.duplicated(keep=False)

输出结果如下:

0 False

1 False

2 True

3 False

dtype: bool

可以看到,第1行和第3行是重复行,因为它们与其他行的数据完全相同。

如果我们只想查看某些列是否有重复的行,可以将subset参数设置为需要查看的列,代码如下:

df.duplicated(subset=['name', 'age'])

输出结果如下:

0 False

1 False

2 True

3 False

dtype: bool

可以看到,第1行和第3行是重复行,因为它们的'name'和'age'列的值完全相同。

二、Pandas中的drop_duplicates函数

除了duplicated函数,Pandas中还有一个drop_duplicates函数,它可以用来删除重复的行。它的用法如下:

df.drop_duplicates(subset=None, keep='first', inplace=False)

其中,参数的含义与duplicated函数相同。

例如,我们有如下的数据:

import pandas as pd

data = {'name': ['Tom', 'Jerry', 'Tom', 'Bob'],

'age': [20, 21, 20, 22],

'gender': ['M', 'M', 'M', 'F']}

df = pd.DataFrame(data)

现在我们想删除重复的行,可以用如下的代码:

df.drop_duplicates()

输出结果如下:

name age gender

0 Tom 20 M

1 Jerry 21 M

3 Bob 22 F

可以看到,第2行和第3行是重复行,被删除了。

如果我们只想删除某些列中的重复行,可以将subset参数设置为需要查看的列,代码如下:

df.drop_duplicates(subset=['name', 'age'])

输出结果如下:

name age gender

0 Tom 20 M

1 Jerry 21 M

3 Bob 22 F

可以看到,第1行和第3行是重复行,被删除了。

drop_duplicates函数还有一个很方便的参数inplace,它表示是否在原数据上进行修改。如果设置为True,就会直接在原数据上删除重复的行,否则会返回一个新的DataFrame。

三、案例分析

现在我们来看一个实际的案例,探讨如何使用Pandas查看重复的行。

假设我们有一个用户行为数据集,包含了用户ID、商品ID和购买时间。我们想查看是否有用户在同一时间购买了同一件商品。

首先,我们需要载入数据:

import pandas as pd

df = pd.read_csv('user_behavior.csv')

然后,我们可以使用duplicated函数来查看是否存在重复的行:

df.duplicated()

输出结果如下:

0 False

1 False

2 True

3 False

dtype: bool

可以看到,第3行是重复行,因为它与第1行的数据完全相同。

我们也可以查看每一行是否存在重复的行:

df.duplicated(keep=False)

输出结果如下:

0 False

1 False

2 True

3 False

dtype: bool

可以看到,第1行和第3行是重复行,因为它们与其他行的数据完全相同。

最后,我们可以用drop_duplicates函数来删除重复的行:

df.drop_duplicates()

输出结果如下:

user_id item_id timestamp

0 1 1 2021-01-01 12:00:00

1 2 2 2021-01-02 13:00:00

3 3 3 2021-01-03 14:00:00

可以看到,第2行和第3行是重复行,被删除了。

四、

  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024