• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

常用pandas数据清洗操作已备好

武飞扬头像
m0_67900893
帮助1

文章中所总结的pandas数据清洗操作,是以微软数据清洗利器Power Query为依据,将其中涉及的数据清洗操作用pandas来实现。

转置

df1 = df.T

对行进行计数

  1.  
    print(df.count())
  2.  
    print(df.info()) #不仅返回行数

修改特定列的数据类型

  1.  
    df['col'] = pd.to_datetime(df['col']) #修改为日期时间类型
  2.  
    df['col'] = pd.to_numeric(df['col'] #修改为浮点数类型

重命名列

重命名列可以调用df.rename(),参数如下:

df.rename(columns={'col1':'new_col1 ','col2':'new_col2'},inplace=True) #不限于两列

替换值

  1.  
    #替换空值
  2.  
    #将整个DataFrame中的空值替换为0:
  3.  
    df.fillna(0,inplace=True)
  4.  
    #将DataFrame指定列中的空值替换为0:
  5.  
    df['col'].fillna(0,inplace=True)
  6.  
     
  7.  
    #替换特定值(只针对字符串)
  8.  
    #将指定列中的Y替换成YY
  9.  
    #只能对指定列运用,否则报错:AttributeError: 'DataFrame' object has no attribute 'str'
  10.  
    f['col'] = f['col'].str.replace('Y','YY')

数据格式

  1.  
    #全部大写
  2.  
    df['col'] = df['col'].str.upper()
  3.  
    #全部小写
  4.  
    df['col'] = df['col'].str.lower()
  5.  
    #首字母大写
  6.  
    df['col'] = df['col'].str.capitalize()
  7.  
    #修整(去首尾空格)
  8.  
    df['col'] = df['col'].str.strip()

基本统计信息

print(df.describe())

数学四则运算

  1.  
    #加
  2.  
    df['col'] = df['col'].add()
  3.  
    #减
  4.  
    df['col'] = df['col'].sub()
  5.  
    #乘
  6.  
    df['col'] = df['col'].mul()
  7.  
    #除
  8.  
    df['col'] = df['col'].div()

保留行

  1.  
    #保留前n行
  2.  
    df.head()
  3.  
    #保留后n行
  4.  
    df.tail()
  5.  
    #保留指定行
  6.  
    df.[m:n] #左闭右开
  7.  
    df.iloc[m,n] #左闭右开
  8.  
    df.loc[m,n] #左闭右闭

删除行

  1.  
    #删除前n行,后n行,间隔行:
  2.  
    df.drop([index_list],inplace=True)
  3.  
    #删除重复行
  4.  
    df.drop_duplicates(inplace=True)
  5.  
    #删除空行
  6.  
    df.dropna(how='any',inplace=True) #一行中任何一列为空值就删除
  7.  
    df.dropna(how='all',inplace=True) #一行中所有列为空值才删除

删除列

df.drop([col_list],inplace=True,axis=1)

合并查询

  1.  
    #df1和df2有公共列名col
  2.  
    df3 = pd.merge(df1,df2,on='col',how=inner) #仅保留df1和df2共有的行
  3.  
    df3 = pd.merge(df1,df2,on='col',how=outer) #保留df1和df2所有的行
  4.  
    df3 = pd.merge(df1,df2,on='col',how=left) #保留df1所有的行
  5.  
    df3 = pd.merge(df1,df2,on='col',how=right) #保留df2所有行
  6.  
     
  7.  
    #df1和df2没有公共列名
  8.  
    df3 = pd.merge(df1,df2,left_on='col1',right_on='col2,how=inner) #仅保留df1和df2共有的行
  9.  
    df3 = pd.merge(df1,df2,left_on='col1',right_on='col2',how=outer) #保留df1和df2所有的行
  10.  
    df3 = pd.merge(df1,df2,left_on='col1',right_on='col2',how=left) #保留df1所有的行
  11.  
    df3 = pd.merge(df1,df2,left_on='col1',right_on='col2',how=right) #保留df2所有行

追加查询

  1.  
    #pd.concat()法
  2.  
    df = pd.concat([df_list],ignore_index=True)
  3.  
    df = pd.concat([df_list],ignore_index=False,keys=[keys_list])
  4.  
    #df.append()法
  5.  
    df = df.append([df_list],ignore_index=True) #append没有参数keys

排序

  1.  
    #按值排序
  2.  
    df.sort_values(by=[col_list],inplace=True,ascending=False)
  3.  
    #按索引拍序
  4.  
    df.sort_index()

筛选

  1.  
    #大于、小于、等于、不等于
  2.  
    df.query('col > 10',inplace=True)
  3.  
    df.query('col == [value_list]',inplace=True)
  4.  
    #介于
  5.  
    df.query('col > m and col < n',inplace=True) #and,&,or,|,regular expression etc

添加列

df['new_col'] = df['col1']   fd['col2'] #其他四则运算

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgekkek
系列文章
更多 icon
同类精品
更多 icon
继续加载