数据清洗主要是把有用的数据留下,无用的数据删掉。
1.去除重复的数据
Pandas库:duplicated():找到重复数据,重复的数据方法返回false。
drop_duplicates(): 找到重复数据,删除掉重复数据。
举例说明:df.duplicated(“name”); 找到name行中的重复数据,并且标记为false。
df.drop_duplicates(‘age’);结果处理为 删除掉age列中的重复数据。
2.对于缺少数据的处理
1)先要找到缺少的数据
from pandas import DataFrame
df.isnull(): 判断数据是否为空值。
df.notnull(): 判断数据是否不为空值。
2)找到缺失值后要如何处理
你可以选择删除:df.dropna()
标记当行里数据全部为空时,才选择删除:df.dropna(how=‘all’)
当以列为单位删除时: df.dropna(how=‘all’,axis=1)
你可以选择用其他数值进行填补:
用问号填补空白数据:df.fillna(‘?’)
用同一列上的前一个数据来填补:df.fillna(method = 'pad')
用同一列上的后一个数据来填补:df.fillna(method = 'bfill')
问题:如何用limit限制每列可以替代NAN的数目。
你可以选择用统计性数值的数据来替代:
用列上除控制之外的平均数来替代:df.fillna(df.mean()) (个数不包括空值)
用其他的列的统计数据来替代:df.fillna(df.mean()['高代':'解几'])(用解几列的平均值来替代高代列上的空值)
你可以选择指定数据来填补:
df.fillna({‘数分':100,'高代':0}) (意思是:数分列上的空值填补为100,高代列上填补的空值为0)
你需要清除字符型数据左右首尾的字符rstrip():
df['name'].str.rstrip('n') //删除最右边的字符。如果是n,则删除n;否则,就删除最右边字符就OK。