class pandas.SparseArray(data, sparse_index=None, index=None, fill_value=None, kind='integer', dtype=None, copy=False)[source]

An ExtensionArray for storing sparse data.

Changed in version 0.24.0: Implements the ExtensionArray interface.

data : array-like

A dense array of values to store in the SparseArray. This may contain fill_value.

sparse_index : SparseIndex, optional
index : Index
fill_value : scalar, optional

Elements in data that are fill_value are not stored in the SparseArray. For memory savings, this should be the most common value in data. By default, fill_value depends on the dtype of data:

data.dtype na_value
float np.nan
int 0
bool False
datetime64 pd.NaT
timedelta64 pd.NaT

The fill value is potentially specified in three ways. In order of precedence, these are

  1. The fill_value argument
  2. dtype.fill_value if fill_value is None and dtype is a SparseDtype
  3. data.dtype.fill_value if fill_value is None and dtype is not a SparseDtype and data is a SparseArray.
kind : {‘integer’, ‘block’}, default ‘integer’

The type of storage for sparse locations.

  • ‘block’: Stores a block and block_length for each contiguous span of sparse values. This is best when sparse data tends to be clumped together, with large regsions of fill-value values between sparse values.
  • ‘integer’: uses an integer to store the location of each sparse value.
dtype : np.dtype or SparseDtype, optional

The dtype to use for the SparseArray. For numpy dtypes, this determines the dtype of self.sp_values. For SparseDtype, this determines self.sp_values and self.fill_value.

copy : bool, default False

Whether to explicitly copy the incoming data array.




Scroll To Top