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'])