pandas.arrays.StringArray#

class pandas.arrays.StringArray(values, copy=False)[source]#

Extension array for string data.

Warning

StringArray is considered experimental. The implementation and parts of the API may change without warning.

Parameters:
valuesarray-like

The array of data.

Warning

Currently, this expects an object-dtype ndarray where the elements are Python strings or nan-likes (None, np.nan, NA). This may change without warning in the future. Use pandas.array() with dtype="string" for a stable way of creating a StringArray from any sequence.

Changed in version 1.5.0: StringArray now accepts array-likes containing nan-likes(None, np.nan) for the values parameter in addition to strings and pandas.NA

copybool, default False

Whether to copy the array of data.

Attributes

None

Methods

None

See also

pandas.array()

The recommended function for creating a StringArray.

Series.str

The string methods are available on Series backed by a StringArray.

Notes

StringArray returns a BooleanArray for comparison methods.

Examples

>>> pd.array(['This is', 'some text', None, 'data.'], dtype="string")
<StringArray>
['This is', 'some text', <NA>, 'data.']
Length: 4, dtype: string

Unlike arrays instantiated with dtype="object", StringArray will convert the values to strings.

>>> pd.array(['1', 1], dtype="object")
<NumpyExtensionArray>
['1', 1]
Length: 2, dtype: object
>>> pd.array(['1', 1], dtype="string")
<StringArray>
['1', '1']
Length: 2, dtype: string

However, instantiating StringArrays directly with non-strings will raise an error.

For comparison methods, StringArray returns a pandas.BooleanArray:

>>> pd.array(["a", None, "c"], dtype="string") == "a"
<BooleanArray>
[True, <NA>, False]
Length: 3, dtype: boolean