数据清洗的步骤和方法

数据清洗主要是把有用的数据留下,无用的数据删掉。

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。

                        

你可能感兴趣的:(数据清洗的步骤和方法)