利用Python分析数据时,经常用到pandas.DataFrame,本文主要讲解如何对DataFrame进行去重?
去重步骤
1. 利用DataFrame中的duplicated方法返回一个布尔型的Series,显示各行是否有重复行,没有重复行显示为FALSE,有重复行显示为TRUE(第一次出现为FALSE,第二次出现为TRUE);
2. 利用DataFrame中的drop_duplicates方法返回一个移除了重复行的DataFrame。
特别注意
如果duplicated和drop_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