pandas.arrays.SparseArray#

class pandas.arrays.SparseArray(data, sparse_index=None, fill_value=None, kind='integer', dtype=None, copy=False)[源代码][源代码]#

用于存储稀疏数据的 ExtensionArray。

参数:
数据类似数组或标量

一个密集的值数组,存储在 SparseArray 中。这可能包含 fill_value

sparse_indexSparseIndex,可选
fill_value标量,可选

数据中的 fill_value 元素不会存储在 SparseArray 中。为了节省内存,这应该是 data 中最常见的值。默认情况下,fill_value 取决于 data 的 dtype:

data.dtype

na_value

float

np.nan

int

0

bool

datetime64

pd.NaT

timedelta64

pd.NaT

填充值可以通过三种方式指定。按优先顺序,这些方式是

  1. fill_value 参数

  2. dtype.fill_value 如果 fill_value 是 None 并且 dtype 是一个 SparseDtype

  3. data.dtype.fill_value 如果 fill_value 是 None 并且 dtype 不是一个 SparseDtype 并且 data 是一个 SparseArray

种类str

可以是 ‘integer’ 或 ‘block’,默认是 ‘integer’。稀疏位置的存储类型。

  • ‘block’: 存储每个连续的 span 稀疏值的 blockblock_length。当稀疏数据倾向于聚集在一起,稀疏值之间有大区域的 fill-value 值时,这是最好的选择。

  • ‘integer’: 使用一个整数来存储每个稀疏值的位置。

dtypenp.dtype 或 SparseDtype,可选

用于 SparseArray 的 dtype。对于 numpy dtypes,这决定了 self.sp_values 的 dtype。对于 SparseDtype,这决定了 self.sp_valuesself.fill_value

复制bool, 默认为 False

是否显式复制传入的 data 数组。

属性

None

方法

None

例子

>>> from pandas.arrays import SparseArray
>>> arr = SparseArray([0, 0, 1, 2])
>>> arr
[0, 0, 1, 2]
Fill: 0
IntIndex
Indices: array([2, 3], dtype=int32)