重复值处理
import pandas as pd # 生成重复数据 data1 = ['a', 3] data2 = ['b', 2] data3 = ['a', 3] data4 = ['c', 2] df = pd.DataFrame([data1, data2, data3, data4], columns = ['col1', 'col2']) print(df)
# 判断重复数据 isDuplicated = df.duplicated() # 判断重复数据记录 print(isDuplicated) # 打印输出
# 删除重复值 new_df1 = df.drop_duplicates() # 删除数据记录中所有列值相同的记录 new_df2 = df.drop_duplicates(['col1']) # 删除数据记录中col1值相同的记录 new_df3 = df.drop_duplicates(['col2']) # 删除数据记录中col2值相同的记录 new_df4 = df.drop_duplicates(['col1', 'col2']) # 删除数据记录中指定列(col1/col2)值相同的记录 print(new_df1) print(new_df2) print(new_df3) print(new_df4)
判断重复数据的判断方法:df.duplicated(),该方法中两个主要的参数是subset和keep:
- subset:要判断重复值的列,可以指定特定列或多个列。默认使用全部列。
- keep:当重复时不标记为True的规则,可设置为第一个、最后一个和全部标记为True(False)。默认为第一个,即第一个重复值不标记为True。
删除重复数据的方法:df.drop_duplicates(),参数跟df.duplicated()一样。
Numpy重复值的判断
除了Pandas可用来做重复值判断和处理外,也可以使用Numpy中的unique()方法,该方法返回其参数数组中所有不同的值,并且按照从小到大的顺序排列。Python自带的内置函数set方法,也可以返回唯一元素的集合。