pandas常用数据清洗方法

数据预处理常用函数

  • df.duplicated() :判断各行是重复,False为非重复值。
  • df.drop_duplicates():删除重复行
  • df.fillna(0):用实数0填充na
  • df.dropna():按行删除缺失数据,使用参数axis=0;按列删除缺失值,使用参数axis=1,how = "all" 全部是NA才删,"any"只要有NA就删除
  • del df['col1']:直接删除某列
  • df.drop([]'col1',……],axis=1):删除指定列,也可以删除指定行
  • df.rename(index={'row1':'A'},columns ={'col1':'B'}):重命名索引名和列名
  • df.replace():替换df值,前后值可以用字典表,{'1':'A','2:'B'}
  • hr_data['col1'].map(function):Series.map,对指定列进行函数转换
  • pd.merge(df1,df2,on='col1',how='inner',sort=True):合并两个df,按照共有的列作内连接(交集),outter为外连接(并集),结果排序。
  • pd.concat([df1,df2]):多个Series堆叠成多行。
  • df1.combine_first(df2):用df2的数据补充df1的缺失值NAN。

 

数据集介绍

以下各例子均使用如下数据集进行演示。


duplicated()

判断各行是重复,False为非重复值。


drop_duplicates()

删除重复行

通过指定列,删除重复行


fillna(value=0)

对缺失值进行填充 ,用实数0填充na。


df.dropna()

通常情况下,删除行使用参数axis = 0,删除列使用axis = 1。

按列删除缺失值,使用参数axis=1。

how = "all" 全部是NA才删,"any"只要有NA就删除


del df['col1']

直接删除某列。


df.drop()

  • labels 就是要删除的行列的名字,用列表给定。
  • axis=0 删除行,axis=1 删除列。
  • index 直接指定要删除的行。
  • columns 直接指定要删除的列。

删除指定行


df.rename()

重命名索引名和列名。


df.replace()

替换df值,前后值可以用字典表,{'1':'A','2:'B'}。


hr_data['col1'].map(function)

Series.map,对指定列进行函数转换。


pd.merge(df1,df2,on='col1',how='inner',sort=True)

merge 函数通过一个或多个键来将数据集的行连接起来。该函数的主要 应用场景是针对同一个主键存在两张包含不同特征的表,通过该主键的连接,将两张表进行合并。合并之后,两张表的行数没有增加,列数是两张表的列数之和减一。

{!-- PGC_COLUMN --}

  • on=None 指定连接的列名,若两列需要连接的列名不一样,可以通过left_on和right_on 来具体指定
  • how=’inner’,参数指的是左右两个表主键那一列中存在不重合的行时,取结果的方式:inner表示交集,outer 表示并集,left 和right 表示取某一边。

pd.concat([df1,df2])

拼接两个数据集,可在行或者列上合并。

axis=0 是行拼接,拼接之后行数增加,列数也根据join来定,join=’outer’时,列数是两表并集。同理join=’inner’,列数是两表交集。


df1.combine_first(df2)

合并重叠数据,用df2的数据补充df1的缺失值NAN。

 
posted @ 2020-03-27 16:27  -零  阅读(7521)  评论(0编辑  收藏  举报