pandas.arrays.SparseArray#

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

用于存储稀疏数据的 ExtensionArray。

Parameters:
dataarray-like 或 scalar

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

sparse_indexSparseIndex, 可选
fill_valuescalar, optional

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

data.dtype

na_value

float

np.nan

int

0

bool

False

datetime64

pd.NaT

timedelta64

pd.NaT

fill_value 可能通过三种方式指定。按优先级顺序,它们是:

  1. fill_value 参数

  2. 如果 fill_value 为 None 且 dtypeSparseDtype,则为 dtype.fill_value

  3. 如果 fill_value 为 None 且 dtype 不是 SparseDtypedataSparseArray,则为 data.dtype.fill_value

kindstr

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

  • ‘block’:为每个连续的稀疏值 跨度 存储一个 blockblock_length。当稀疏数据倾向于聚集在一起,稀疏值之间有大片 fill-value 值时,这种方式效果最好。

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

dtypenp.dtype 或 SparseDtype, 可选

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

copybool,默认 False

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

Examples

>>> 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)

Attributes

None

Methods

None