当任何匹配特定值的数据(NaN/缺失值,尽管可以选择任何值)被省略时,稀疏对象被“压缩”。 一个特殊的SparseIndex对象跟踪数据被“稀疏”的地方。 这将在一个例子中更有意义。 所有的标准Pandas数据结构都应用了to_sparse方法 -

  1. import pandas as pd
  2. import numpy as np
  3. ts = pd.Series(np.random.randn(10))
  4. ts[2:-2] = np.nan
  5. sts = ts.to_sparse()
  6. print (sts)
Python

执行上面示例代码,得到以下结果 -

  1. 0 -0.391926
  2. 1 -1.774880
  3. 2 NaN
  4. 3 NaN
  5. 4 NaN
  6. 5 NaN
  7. 6 NaN
  8. 7 NaN
  9. 8 0.642988
  10. 9 -0.373698
  11. dtype: float64
  12. BlockIndex
  13. Block locations: array([0, 8])
  14. Block lengths: array([2, 2])
Shell

为了内存效率的原因,所以需要稀疏对象的存在。

现在假设有一个大的NA DataFrame并执行下面的代码 -

  1. import pandas as pd
  2. import numpy as np
  3. df = pd.DataFrame(np.random.randn(10000, 4))
  4. df.ix[:9998] = np.nan
  5. sdf = df.to_sparse()
  6. print (sdf.density)
Python

执行上面示例代码,得到以下结果 -

  1. 0.0001
Shell

通过调用to_dense可以将任何稀疏对象转换回标准密集形式 -

  1. import pandas as pd
  2. import numpy as np
  3. ts = pd.Series(np.random.randn(10))
  4. ts[2:-2] = np.nan
  5. sts = ts.to_sparse()
  6. print (sts.to_dense())
Python

执行上面示例代码,得到以下结果 -

  1. 0 -0.275846
  2. 1 1.172722
  3. 2 NaN
  4. 3 NaN
  5. 4 NaN
  6. 5 NaN
  7. 6 NaN
  8. 7 NaN
  9. 8 -0.612009
  10. 9 -1.413996
  11. dtype: float64
Shell

稀疏Dtypes

稀疏数据应该具有与其密集表示相同的dtype。 目前,支持float64int64booldtypes。 取决于原始的dtypefill_value默认值的更改 -

  • float64 − np.nan
  • int64 − 0
  • bool − False

执行下面的代码来理解相同的内容 -

  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series([1, np.nan, np.nan])
  4. print (s)
  5. print ("=============================")
  6. s.to_sparse()
  7. print (s)
Python

执行上面示例代码,得到以下结果 -

  1. 0 1.0
  2. 1 NaN
  3. 2 NaN
  4. dtype: float64
  5. =============================
  6. 0 1.0
  7. 1 NaN
  8. 2 NaN
  9. dtype: float64
Shell
 

Pandas稀疏数据的更多相关文章

  1. Pandas教程目录

    Pandas数据结构 Pandas系列 Pandas数据帧(DataFrame) Pandas面板(Panel) Pandas基本功能 Pandas描述性统计 Pandas函数应用 Pandas重建索 ...

  2. Python人工智能学习笔记

    Python教程 Python 教程 Python 简介 Python 环境搭建 Python 中文编码 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 ...

  3. Pandas | 26 疏离数据

    当任何匹配特定值的数据(NaN/缺失值,尽管可以选择任何值)被省略时,稀疏对象被“压缩”. 一个特殊的SparseIndex对象跟踪数据被“稀疏”的地方. 这将在一个例子中更有意义. 所有的标准Pan ...

  4. 数据预处理 | 使用 Pandas 进行数值型数据的 标准化 归一化 离散化 二值化

    1 标准化 & 归一化 导包和数据 import numpy as np from sklearn import preprocessing data = np.loadtxt('data.t ...

  5. pandas基础-Python3

    未完 for examples: example 1: # Code based on Python 3.x # _*_ coding: utf-8 _*_ # __Author: "LEM ...

  6. 10 Minutes to pandas

    摘要   一.创建对象 二.查看数据 三.选择和设置 四.缺失值处理 五.相关操作 六.聚合 七.重排(Reshaping) 八.时间序列 九.Categorical类型   十.画图      十一 ...

  7. 利用Python进行数据分析(15) pandas基础: 字符串操作

      字符串对象方法 split()方法拆分字符串: strip()方法去掉空白符和换行符: split()结合strip()使用: "+"符号可以将多个字符串连接起来: join( ...

  8. 利用Python进行数据分析(10) pandas基础: 处理缺失数据

      数据不完整在数据分析的过程中很常见. pandas使用浮点值NaN表示浮点和非浮点数组里的缺失数据. pandas使用isnull()和notnull()函数来判断缺失情况. 对于缺失数据一般处理 ...

  9. 利用Python进行数据分析(12) pandas基础: 数据合并

    pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...

随机推荐

  1. 170228、Linux操作系统安装ELK stack日志管理系统--(1)Logstash和Filebeat的安装与使用

    安装测试环境:Ubuntu 16.04.2 LTS 前言 (1)ELK是Elasticsearch,Logstash,Kibana 开源软件的集合,对外是作为一个日志管理系统的开源方案.它可以从任何来 ...

  2. C#中遍历ArrayList的三种方法

    using System; using System.Collections; using System.Linq; using System.Text; namespace ArrayListDem ...

  3. FineReport----日期处理

    日期处理:http://help.finereport.com/doc-view-819.html DAYSOFMONTH(date):返回当日的该月天数 DATEDELTA(Today(),-1): ...

  4. Spoken English Practice( Believe it or not, I don't need to make believe its a big deal. (believe,deal, You don't say))

    音标复习                                                绿色:连读:红色:略读:蓝色:浊化:橙色:弱读 口语蜕变(2017/6/25) Sorry, t ...

  5. access variables from the global scope 在全局范围内访问变量的2种方法

    w http://php.net/manual/zh/language.variables.scope.php http://php.net/manual/en/language.variables. ...

  6. https://www.cnblogs.com/yuanchenqi/articles/6755717.html

    知识预览 一 进程与线程的概念 二 threading模块 三 multiprocessing模块 四 协程 五 IO模型 回到顶部 一 进程与线程的概念 1.1 进程 考虑一个场景:浏览器,网易云音 ...

  7. Using Swift with Cocoa and Objective-C--在同个project中使用Swift和在同个project中

    http://www.cocoachina.com/newbie/basic/2014/0605/8688.html watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5u ...

  8. TouchDelegate

    TouchDelegate(Rect bounds, View delegateView) Parameters: bounds Bounds in local coordinates of the ...

  9. tornado下使用静态文件和文件缓存

    静态文件和文件缓存 1.在应用配置 settings 中指定 static_path 选项来提供静态文件服务:   2.在应用配置 settings 中指定 static_url_prefix 选项来 ...

  10. laravel command命令行

    生成类 为了创建一个新命令,你可以使用Artisan中的 command:make 命令生成一个骨架作为你的起点: 生成一个命令类 php artisan command:make FooComman ...