pandas去重 保留前一条或后一条 drop

您所在的位置:网站首页 stata去重复行 pandas去重 保留前一条或后一条 drop

pandas去重 保留前一条或后一条 drop

2024-07-09 10:02| 来源: 网络整理| 查看: 265

pandas去重 保留前一条或后一条 drop_duplicates subset参数keep参数inplace参数例子 pandas库中的drop_duplicates()函数简直就是去重的神器,该函数还可以在去重中人为设置保留靠前的记录还是靠后的记录。

DataFrame.drop_duplicates(self, subset=None, keep='first', inplace=False)[source]

一共有三个参数,subset、keep和inplace

subset参数 subset : column label or sequence of labels, optional Only consider certain columns for identifying duplicates, by default use all of the columns

subset参数用来设置以哪些列的重复作为重复的标准,参数为列标签,如果不设置该值,则默认为以所有列作为重复的判断条件。

keep参数 keep : {‘first’, ‘last’, False}, default ‘first’ first : Drop duplicates except for the first occurrence. last : Drop duplicates except for the last occurrence. False : Drop all duplicates.

keep可以设置为三个参数,默认为first first表示保留第一次出现的记录 last表示保留最后一次出现的记录 False表示把所有重复的删除

inplace参数 inplace : boolean, default False Whether to drop duplicates in place or to return a copy

inplace可以设置为True或False,默认为False True表示原地去重,会改变dataframe False表示会返回一个新的dataframe,不会改变原来的变量

例子 import pandas as pd data = pd.DataFrame([[1, 'Wang', 20], [2, 'Li', 20], [1, 'Wang', 21], [1, 'Wang', 20]], columns=['id', 'name', 'age'])

数据为

id name age 0 1 Wang 20 1 2 Li 20 2 1 Wang 21 3 1 Wang 20

很显然第0条和第3条记录重复,使用默认用法即可去除

print(data.drop_duplicates())

结果是

id name age 0 1 Wang 20 1 2 Li 20 2 1 Wang 21

很显然是保留了第0条记录,而去除了第3条记录,可通过设置keep参数为last使其保留后一条参数

print(data.drop_duplicates(keep='last'))

结果是

id name age 1 2 Li 20 2 1 Wang 21 3 1 Wang 20

同时对于数据集

id name age 0 1 Wang 20 1 2 Li 20 2 1 Wang 21 3 1 Wang 20

认为id和name相同即为重复的话,可以使用

print(data.drop_duplicates(['id', 'name']))

得到

id name age 0 1 Wang 20 1 2 Li 20

如果想把重复的数据都删除,则使用

print(data.drop_duplicates(['id', 'name'], keep=False))

得到

id name age 1 2 Li 20


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3