- Pandas环境安装配置
- Pandas数据结构
- Pandas快速入门
- Pandas系列
- Pandas数据帧(DataFrame)
- Pandas面板(Panel)
- Pandas基本功能
- Pandas描述性统计
- Pandas函数应用
- Pandas重建索引
- Pandas迭代
- Pandas排序
- Pandas字符串和文本数据
- Pandas选项和自定义
- Pandas索引和选择数据
- Pandas统计函数
- Pandas窗口函数
- Pandas聚合
- Pandas缺失数据
- Pandas分组(GroupBy)
- Pandas合并/连接
- Pandas级联
- Pandas日期功能
- Pandas时间差(Timedelta)
- Pandas分类数据
- Pandas可视化
- Pandas IO工具
- Pandas稀疏数据
- Pandas注意事项&窍门
- Pandas与SQL比较
Pandas稀疏数据
当任何匹配特定值的数据(NaN/缺失值,尽管可以选择任何值)被省略时,稀疏对象被“压缩”。 一个特殊的SparseIndex对象跟踪数据被“稀疏”的地方。 这将在一个例子中更有意义。 所有的标准Pandas数据结构都应用了to_sparse
方法 -
import pandas as pd import numpy as np ts = pd.Series(np.random.randn(10)) ts[2:-2] = np.nan sts = ts.to_sparse() print (sts)
执行上面示例代码,得到以下结果 -
0 -0.391926 -1.774880 NaN NaN NaN NaN NaN NaN 0.642988 -0.373698 dtype: float64 BlockIndex Block locations: array([0, 8]) Block lengths: array([2, 2])
为了内存效率的原因,所以需要稀疏对象的存在。
现在假设有一个大的NA DataFrame并执行下面的代码 -
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(10000, 4)) df.ix[:9998] = np.nan sdf = df.to_sparse() print (sdf.density)
执行上面示例代码,得到以下结果 -
0.0001
通过调用to_dense
可以将任何稀疏对象转换回标准密集形式 -
import pandas as pd import numpy as np ts = pd.Series(np.random.randn(10)) ts[2:-2] = np.nan sts = ts.to_sparse() print (sts.to_dense())
执行上面示例代码,得到以下结果 -
0 -0.275846 1.172722 NaN NaN NaN NaN NaN NaN -0.612009 -1.413996 dtype: float64
稀疏Dtypes
稀疏数据应该具有与其密集表示相同的dtype。 目前,支持float64
,int64
和booldtypes
。 取决于原始的dtype
,fill_value
默认值的更改 -
float64
−np.nan
int64
−0
bool
−False
执行下面的代码来理解相同的内容 -
import pandas as pd import numpy as np s = pd.Series([1, np.nan, np.nan]) print (s) print ("=============================") s.to_sparse() print (s)
执行上面示例代码,得到以下结果 -
0 1.0 NaN NaN dtype: float64 ============================= 1.0 NaN NaN dtype: float64
上一篇:Pandas IO工具
下一篇:Pandas注意事项&窍门
扫描二维码
程序员编程王