pandas去重 保留前一条或后一条 drop |
您所在的位置:网站首页 › stata去重复行 › pandas去重 保留前一条或后一条 drop |
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 columnssubset参数用来设置以哪些列的重复作为重复的标准,参数为列标签,如果不设置该值,则默认为以所有列作为重复的判断条件。 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 copyinplace可以设置为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 |