利用Python分析数据时,经常用到pandas.DataFrame,本文主要讲解如何对DataFrame进行去重?

去重步骤

  1. 利用DataFrame中的duplicated方法返回一个布尔型的Series,显示各行是否有重复行,没有重复行显示为FALSE,有重复行显示为TRUE(第一次出现为FALSE,第二次出现为TRUE);
  2. 利用DataFrame中的drop_duplicates方法返回一个移除了重复行的DataFrame

特别注意

  如果duplicateddrop_duplicates方法中没有设置参数,则这两个方法默认会比较全部列(如果两行数据的每一列都相同,则判断为重复;否则不重复)。如果某列的元素相同,我们就去除整行数据,则需要在这两个方法中加入指定的列名,例如frame.drop_duplicates([‘column1’])

具体实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Python3.5
>>> import pandas as pd
>>> data = {'column1':[1, 1, 1, 2, 2], 'column2':['a','b','a','c','d'], 'column3':[0.1, 0.2, 0.3, 0.4, 0.5]}
>>> frame = pd.DataFrame(data)
>>> frame
column1 column2 column3
0 1 a 0.1
1 1 b 0.2
2 1 a 0.3
3 2 c 0.4
4 2 d 0.5
>>> isDuplicate = frame.duplicated()
>>> isDuplicate
0 False
1 False
2 False
3 False
4 False
dtype: bool
>>> frame1 = frame.drop_duplicates(['column1'])
>>> frame1
column1 column2 column3
0 1 a 0.1
3 2 c 0.4
>>> frame2 = frame.drop_duplicates(['column1','column2'])
>>> frame2
column1 column2 column3
0 1 a 0.1
1 1 b 0.2
3 2 c 0.4
4 2 d 0.5

参考:http://blog.csdn.net/zhoufen12345/article/details/53582477