美文网首页
数据清洗的步骤和方法

数据清洗的步骤和方法

作者: 东日情书 | 来源:发表于2019-02-26 22:18 被阅读0次

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

    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。

                            

    相关文章

      网友评论

          本文标题:数据清洗的步骤和方法

          本文链接:https://www.haomeiwen.com/subject/xpctuqtx.html