Python 清除重复值

Python019

Python 清除重复值,第1张

from pandas import read_csv

df = read_csv('D://PDA//4.3//data.csv')

df

#找出行重复的位置

dIndex = df.duplicated()

#根据某些列,找出重复的位置

dIndex = df.duplicated('id')

dIndex = df.duplicated(['id', 'key'])

#根据返回值,把重复数据提取出来

df[dIndex]

id  key          value

4  1251147    品牌          Apple

5  1251147  商品名称  苹果iPad mini 3

#直接删除重复值

#默认根据所有的列,进行删除

newDF = df.drop_duplicates()

#当然也可以指定某一列,进行重复值处理

newDF = df.drop_duplicates('id')

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

先看一个小例子

[python] view plain copy

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

执行结果是:

[python] view plain copy

k

0  1

1  1

2  2

3  2

[python] view plain copy

0    False

1     True

2    False

3     True

[python] view plain copy

k

0  1

2  2

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

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

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

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

data.drop_duplicates(['k2'])