一、去重方法 dropDuplicates
-
功能:对DF的数据进行去重,如果重复数据有多条,取第一条
# 去重API dropDuplicates,无参数是对数据进行整体去重 df.dropDuplicates().show() # API 同样可以针对字段进行去重,如下传入age字段,表示只要年龄一样,就认为是重复数据 df.dropDuplicates(['age', 'job']).show()
二、删除有缺失值的方法 dropna
-
功能:如果数据中包含null,通过dropna来进行判断,符合条件就删除这一行的数据
# 如果有缺失,进行数据删除 # 无参数 为 how='any',执行,只要有一个列是null数据整行删除,如果填入how='all',表示全部列为空才会删除,how参数默认是any df.dropna().show() # 指定阈值进行删除,thresh=3表示,有效的列最少有3个,这行数据才保留 # 设定thresh后,how参数无效了 df.dropna(thresh=3).show() # 可以指定阈值,以及配合指定列进行工作 # thresh=2,subset=['name','age'],表示针对这两个列,有效列最少为2个才保留数据 df.dropna(thresh=2,subset=['name','age']).show()
三、填充缺失值数据 fillna
-
功能:根据参数的规则,来进行null的替换
# 将所有的空,按照指定的值进行填充,不理会列的,任何空都被填充 df.fillna("loss").show() # 指定列进行填充 df.fillna("loss", subset=['job']).show() # 给定字典 设定各个列的填充规则 df.fillna({"name": "未知姓名", "age": 1, "job": "worker"}).show()