pandas 的数据结构介绍
要使用 pandas, 你首先要熟悉它的两个主要数据结构: Series 和 DataFrame. 虽然它们并不能解决所有问题, 但它们为大多数应用提供了一种可靠的, 易于使用的基础
Series
Series 的字符串表现形式为: 索引在左, 值在右. 由于我们没有为数据指定索引, 于是会自动创建一个 0 到 N-1 的整数型索引. 可以通过 values 和 index 属性来获取其数组表示形式和索引对象
可以指定索引. 与 NumPy 相比, 你可以通过索引的方式选取 Series 中的单个或一组值
NumPy 运算 (如根据布尔型数值进行过滤, 标量乘法, 应用数学函数等) 都会保留索引和值之间的连接:
还可以将 Series 看成是一个定长的有序字典, 如果数据被存放在一个 Python 字典中, 也可以通过这个字典来创建 Series
如果只传入一个字典, 则结果 Series 中的索引就是原字典的健. 也可以指定索引
Series 对象本身及其索引都有一个 name 属性, 该属性跟 pandas 其他的关键功能关系非常密切:
总结: 结合以上程序, 放在 Series 里的可以有: 列表; 列表 + 索引; 字典; 字典 + 索引. 一共四种
pandas 的 isnull 和 notnull 函数可以用于检测缺失数据. 也可以用 Series 的实例方法: 例如: obj4.isnull()
DataFrame
DataFrame 是一个表格型数据结构, 含有一组有序的列, 每列可以是不同的值类型(数值, 字符串, 布尔值等).DataFrame 既有行索引也有列索引, 它可以被看作由 Series 组成的字典(和 Series 共用同一个索引). 其实, DataFrame 中的数据是以一个或多个二维块存放的(而不是列表, 字典或别的一维数组结构). 有关 DataFrame 内部的技术细节远远超过本书所讨论的范围
构建 DataFrame 的办法有很多, 最常用的一种是直接传入一个由等长列表或 NumPy 数组组成的字典
结果 DataFrame 会自动加上索引(跟 Series 一样), 且全部列会被有序排列
如果指定了列序列, 则 DataFrame 的列就会按照指定顺序进行排列:(指定的列序列, 必须在 data 字典里)
如果指定的列不在 data 字典里, 就会变成 NaN
通过类似字典标记的方式和属性的方式, 可以将 DataFrame 的列获取为一个 Series
也可通过行索引字段 ix 来获取各列
关键字 del 用于删除列
警告: 通过索引方式返回的列只是相应数据的视图而已, 并不是副本. 因此, 对返回的 Series 所做的任何就地修改都会反映到源 DataFrame 上. 通过 Series 的 copy 方法即可显示地复制列.
可以输入给 DataFrame 构造器的数据有:
二维 ndarray
由数组, 列表或元组组成的字典
由 Series 组成的字典
由字典组成的字典
字典或 Series 的列表
等等.....
详细见书中表格 5-1
跟 Series 一样, 都有 index.name 的属性和 columns.name 的属性
values 属性也会以二维 ndarray 形式返回 DataFrame 中的数据
如果 DataFrame 各列的数据类型不同, 则值数组的数据类型就会选用能兼容所有列的数据类型
索引对象
(124 页)
妈的! 服务器奔溃! 全他妈删了! 没保存的后果!
(138 页)
来源: http://www.bubuko.com/infodetail-3357576.html