pandas.Series.xs#

Series.xs(key, axis=0, level=None, drop_level=True)[source] #

Return cross-section from the Series/DataFrame.

This method takes a key argument to select data at a particular level of a MultiIndex.

Parameters:
keylabel or tuple of label

Label contained in the index, or partially in a MultiIndex.

axis{0 or ‘index’, 1 or ‘columns’}, default 0

Axis to retrieve cross-section on.

levelobject, defaults to first n levels (n=1 or len(key))

In case of a key partially contained in a MultiIndex, indicate which levels are used. Levels can be referred by label or position.

drop_levelbool, default True

If False, returns object with same levels as self.

Returns:
Series or DataFrame

Cross-section from the original Series or DataFrame corresponding to the selected index levels.

See also

DataFrame.loc

Access a group of rows and columns by label(s) or a boolean array.

DataFrame.iloc

Purely integer-location based indexing for selection by position.

Notes

xs can not be used to set values.

MultiIndex Slicers is a generic way to get/set values on any level or levels. It is a superset of xs functionality, see MultiIndex Slicers.

Examples

>>> d = {
...  "num_legs": [4, 4, 2, 2],
...  "num_wings": [0, 0, 2, 2],
...  "class": ["mammal", "mammal", "mammal", "bird"],
...  "animal": ["cat", "dog", "bat", "penguin"],
...  "locomotion": ["walks", "walks", "flies", "walks"],
... }
>>> df = pd.DataFrame(data=d)
>>> df = df.set_index(["class", "animal", "locomotion"])
>>> df
 num_legs num_wings
class animal locomotion
mammal cat walks 4 0
 dog walks 4 0
 bat flies 2 2
bird penguin walks 2 2

Get values at specified index

>>> df.xs("mammal")
 num_legs num_wings
animal locomotion
cat walks 4 0
dog walks 4 0
bat flies 2 2

Get values at several indexes

>>> df.xs(("mammal", "dog", "walks"))
num_legs 4
num_wings 0
Name: (mammal, dog, walks), dtype: int64

Get values at specified index and level

>>> df.xs("cat", level=1)
 num_legs num_wings
class locomotion
mammal walks 4 0

Get values at several indexes and levels

>>> df.xs(("bird", "walks"), level=[0, "locomotion"])
 num_legs num_wings
animal
penguin 2 2

Get values at specified column and axis

>>> df.xs("num_wings", axis=1)
class animal locomotion
mammal cat walks 0
 dog walks 0
 bat flies 2
bird penguin walks 2
Name: num_wings, dtype: int64
On this page

This Page