当前位置:首页 >> 脚本专栏

python pandas dataframe 去重函数的具体使用

今天笔者想对pandas中的行进行去重操作,找了好久,才找到相关的函数

先看一个小例子

from pandas import Series, DataFrame
 
data = DataFrame({'k': [1, 1, 2, 2]})
 
print data
 
IsDuplicated = data.duplicated()
 
print IsDuplicated
print type(IsDuplicated)
 
data = data.drop_duplicates()
print data

执行结果是:

   k
0  1
1  1
2  2
3  2

0    False
1     True
2    False
3     True

   k
0  1
2  2

DataFrame的duplicated方法返回一个布尔型Series,表示各行是否重复行。

而 drop_duplicates方法,它用于返回一个移除了重复行的DataFrame

这两个方法会判断全部列,你也可以指定部分列进行重复项判段。

drop_duplicates根据数据的不同情况及处理数据的不同需求,通常会分为两种情况,一种是去除完全重复的行数据,另一种是去除某几列重复的行数据,就这两种情况可用下面的代码进行处理。

1. 去除完全重复的行数据

data.drop_duplicates(inplace=True)

2. 去除某几列重复的行数据

data.drop_duplicates(subset=['A','B'],keep='first',inplace=True)
  • subset: 列名,可选,默认为None
    • keep: {‘first', ‘last', False}, 默认值 ‘first'
    • first: 保留第一次出现的重复行,删除后面的重复行。
    • last: 删除重复项,除了最后一次出现。
  • False: 删除所有重复项。
  • inplace:布尔值,默认为False,是否直接在原数据上删除重复项或删除重复项后返回副本。(inplace=True表示直接在原来的DataFrame上删除重复项,而默认值False表示生成一个副本。)

例如,希望对名字为k2的列进行去重,

data.drop_duplicates(['k2'])