7分钟
DataFrame
DataFrame
的结构如图所示(实线为普通属性,虚线为property
属性或者getset_descriptor
):
.index/columns
属性都为普通属性,它们返回的都是一个Index
对象,参考Series
。
.dtypes
属性为property
属性,给出了每列的数值类型。它返回的是一个Series
。并且没有.dtype
属性,这一点与Series
不同。
.ftypes
属性为property
属性,给出了每列是否为sparse/dense
的。它返回的是一个Series
。并且没有.ftype
属性,这一点与Series
不同。
.values/._values/.shape
属性都为property
属性,参考Series
。
._data
属性为普通属性,它返回的是一个BlockManager
对象,该对象负责管理内部数据。该对象的.block
属性(普通属性)返回一个列表,该列表里面有多个元素。DataFrame
尽量用一个数组保存类型相同的列。- 每个元素都为一个
xxBlock
对象。如IntBlock/FloatBlock...
- 一个
xxBlock
可能存储多个列的数据(这些列的数据都是同一个类型)
- 一个
xxBlock
对象的.values
属性(普通属性)就是存储的某个列(或者某些类型相同的列)的内部数据,一个ndarray
xxBlock
对象的.shape
属性(property
属性)就是存储的某个列(或者某些类型相同的列)的内部数据的形状
.blocks
属性为property
属性。该属性返回一个字典,该字典的键为不同的数值类型,该字典的值为该数值类型的数值组成的DataFrame
学员评价