Pandas包对数据的常用整理功能,相当于数据预处理(不包括特征工程)

目录


丢弃值

  • drop()

    • 一般用于丢弃DataFrame里的列columns,但切片功能效果相同,根据实际使用,好处是节约内存
  • # 按列(axis=1),丢弃指定label的列
    df.drop(labels, axis=1)

缺失值处理

  • isnull() & notnull() 判断空值

    df.isnull()
    s.isnull()
    s.isnull().value_counts()
  • dropna() 丢弃缺失值
    # 默认axi=0,how=‘any’,按行,任意一行有NaN就整列丢弃
    df.dropna()
    df.dropna(axis=1)
    # 一行中全部为NaN的,才丢弃
    df.driopna(how='all')
    # 保留至少3个非空值的行:一行中有3个值是非空的就保留
    df.dropna(thresh=3)
  • fillna() 缺失值填充
    df.fillna(0)

值替换

  • replace()

    # 将df的A列中 -999 全部替换成空值
    df["A"].replace(-999, np.nan) #-999和1000 均替换成空值
    obj.replace([-999,1000], np.nan) # -999替换成空值,1000替换成0
    obj.replace([-999,1000], [np.nan, 0]) # 同上,写法不同,更清晰
    obj.replace({-999:np.nan, 1000:0})

重复值处理

  • duplicated()

    # 返回布尔向量、矩阵
    s.duplicated()
    df.duplicated()
  • unique()
    # 返回唯一值的数组
    df["A"].unique()
  • drop_duplictad()
    # 保留k1列中的唯一值的行,默认保留第一行
    df.drop_duplicated(["k1"]) # 保留 k1和k2 组合的唯一值的行,take_last=True 保留最后一行
    df.drop_duplicated(["k1","k2"], take_last=True)

排序&排名

  • sort_index()

    • 索引排序

      # 默认axis=0,对行进行排序;ascending=True,升序排序
      s.sort_index()
      df.sort_index() # 对列进行排序,ascending=False 降序
      df.sort_index(axis=1, ascending=False)
    • 值排序

      # 按值对Series进行排序,使用order(),默认空值会置于尾部
      s = pd.Series([4, 6, np.nan, 2, np.nan])
      s.order() # DataFrame可根据一个或多个值进行排序
      df.sort_index(by="A")
      df.sort_index(by=["A","B"])
  • rank()

索引设置

  • reindex()

    • 更新index或者columns,
    • 默认:更新index,返回一个新的DataFrame
  • # 返回一个新的DataFrame,更新index,原来的index会被替代消失
    # 如果某个索引值不存在,会自动补上NaN
    df2 = df1.reindex(['a','b','c','d','e']) # fill_valuse为原先不存在的索引补上默认值,不在是NaN
    df2 = df1.reindex(['a','b','c','d','e'], fill_value=0) # inplace=Ture,在DataFrame上修改数据,而不是返回一个新的DataFrame
    df1.reindex(['a','b','c','d','e'], inplace=Ture) # reindex不止可以修改 索引(行),也可以修改列
    states = ["Texas","Utah","California"]
    df2 = df1.reindex( columns=states )
  • set_index()
    • 将DataFrame中的列columns设置成索引index、
    • 打造层次化索引的方法
  • # 将columns中的其中两列:race和sex设置索引,race为一级,sex为二级
    # inplace=True 在原数据集上修改的
    adult.set_index(['race','sex'], inplace = True) # 默认情况下,设置成索引的列会从DataFrame中移除
    # drop=False将其保留下来
    adult.set_index(['race','sex'], inplace = True)
  • reset_index()
    • 将使用set_index()打造的层次化逆向操作
    • 既是取消层次化索引,将索引变回列,并补上最常规的数字索引
  • adult.reset_index()

修改列名

df.rename(columns = {'库存数量':'12月20日库存数量'},inplace=True)

Pandas-数据整理的更多相关文章

  1. Pandas数据处理实战:福布斯全球上市企业排行榜数据整理

    手头现在有一份福布斯2016年全球上市企业2000强排行榜的数据,但原始数据并不规范,需要处理后才能进一步使用. 本文通过实例操作来介绍用pandas进行数据整理. 照例先说下我的运行环境,如下: w ...

  2. 一些用于数据整理的excel函数

    我们经常要从外部数据源(如数据库.文本文件或网页等)将数据导入excel中,但是此类数据往往比较混乱,无法满足我们的要求,因此在进行数据分析之前,需要将这些数据进行整理清洗,excel由于将数据的管理 ...

  3. 评教数据整理专用VBA小程序

    这次评教的所有数据存放在两个数据库中,比如说给某教师评论的学生有100个,可是结果有40个的数据在数据库A中,另外60人的数据在数据库B中.那么,如何将两个库中的数据整合,最后得到教师的准确成绩成为了 ...

  4. 数据分析与展示——Pandas数据特征分析

    Pandas数据特征分析 数据的排序 将一组数据通过摘要(有损地提取数据特征的过程)的方式,可以获得基本统计(含排序).分布/累计统计.数据特征(相关性.周期性等).数据挖掘(形成知识). .sort ...

  5. pandas小记:pandas数据输入输出

    http://blog.csdn.net/pipisorry/article/details/52208727 数据输入输出 数据pickling pandas数据pickling比保存和读取csv文 ...

  6. Pandas数据排序

    Pandas数据排序 .sort_index() 在指定轴上根据索引进行排序,索引排序后内容会跟随排序 b = pd.DataFrame(np.arange(20).reshape(4,5),inde ...

  7. pandas数据操作

    pandas数据操作 字符串方法 Series对象在其str属性中配备了一组字符串处理方法,可以很容易的应用到数组中的每个元素 t = pd.Series(['a_b_c_d','c_d_e',np. ...

  8. Pandas数据存取

    pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA']) Pandas数据存取 Pandas可以存取多种介质类型数据, ...

  9. pandas 数据预处理

    pandas 数据预处理 缺失数据处理 csv_data=''' A,B,C,D 1.0,2.0,3.0,4.0 5.6,6.0,,8.0 0.0,11.0,12.0,,''' import pand ...

  10. Pandas数据规整

    Pandas数据规整 数据分析和建模方面的大量编程工作都是用在数据准备上的,有时候存放在文件或数据库中的数据并不能满足数据处理应用的要求 Pandas提供了一组高级的.灵活的.高效的核心函数和算法,它 ...

随机推荐

  1. NopCommerce 增加 Customer Field

    预期效果: Customer表新增一个Column 该新增字段可以在Admin段 新增 修改 列表查询及显示 示例步骤: 0.数据库表修改 alter table [Customer] add Mem ...

  2. bzoj-1096 1096: [ZJOI2007]仓库建设(斜率优化dp)

    题目链接: 1096: [ZJOI2007]仓库建设 Description L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚.由于这座山处于高原内陆地区(干燥少雨),L ...

  3. GLine游戏(Win32GUI实现,CodeBlocks+GCC编译)

    游戏规则: 在10X10的棋盘上有五种颜色的棋子. 点击一个棋子,再点击一个空格子,如果两者之间有一条路径的话,棋子会移动到空格子内. 每移动一次,棋盘上会增加三个棋子,其位置和颜色都是随机的. 当横 ...

  4. FILE不是C语言关键字

    FILE不是C语言关键字,只是标准C中的标准输入输出中定义的一个新的数据类型 stdio.htypedef struct _iobuf{ char* _ptr; int _cnt; char* _ba ...

  5. 前端之html

    前端之html 本节内容 前端概述 html结构 标签探秘 <!DOCTYPE html>标签 head标签 body标签 1.前端概述 一个web服务的组成分为前端和后端部分,前端部分负 ...

  6. 导出本地和远程SVN项目, Export remote SVN repository

    在有服务器控制权的情况下, 源服务器上 sudo svnadmin dump ironbank/ > ~/ironbank.svn.dump 在目的服务器上 sudo svnadmin crea ...

  7. Office2013插件开发Outlook篇(1)-- 第一个office2013插件

    一.环境: 下载VS2013安装,记得安装office插件开发包哦. 二.新建Outlook插件项目

  8. 万能的林萧说:一篇文章教会你,如何做到招聘要求中的“要有扎实的Java基础”。

    来历 本文来自于一次和群里猿友的交流,具体的情况且听LZ慢慢道来. 一日,LZ在群里发话,"招人啦." 然某群友曰,"群主,俺想去." LZ回之,"你 ...

  9. Css-深入学习之弧形切角矩形

    本文是作者从别的网站和文章学习了解的知识,简单做了个笔记,想要学习更多的可以参考这里:[css进阶]伪元素的妙用--单标签之美,奇思妙想 (弧形切角矩形) 代码: width: 180px; heig ...

  10. JavaScript的理解记录(5)

    ---接上篇: 三.DOM解析: 1.Document Object Model(DOM):是表示和操作HTML和XML文档内容的基础API;其中几个重要的类有:Document和Element,Te ...