pandas.DataFrame.filter — pandas 3.0.0.dev0+2097.gcdc5b7418e documentation (original) (raw)

DataFrame.filter(items=None, like=None, regex=None, axis=None)[source]#

Subset the DataFrame or Series according to the specified index labels.

For DataFrame, filter rows or columns depending on axis argument. Note that this routine does not filter based on content. The filter is applied to the labels of the index.

Parameters:

itemslist-like

Keep labels from axis which are in items.

likestr

Keep labels from axis for which “like in label == True”.

regexstr (regular expression)

Keep labels from axis for which re.search(regex, label) == True.

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

The axis to filter on, expressed either as an index (int) or axis name (str). By default this is the info axis, ‘columns’ forDataFrame. For Series this parameter is unused and defaults toNone.

Returns:

Same type as caller

The filtered subset of the DataFrame or Series.

See also

DataFrame.loc

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

Notes

The items, like, and regex parameters are enforced to be mutually exclusive.

axis defaults to the info axis that is used when indexing with [].

Examples

df = pd.DataFrame( ... np.array(([1, 2, 3], [4, 5, 6])), ... index=["mouse", "rabbit"], ... columns=["one", "two", "three"], ... ) df one two three mouse 1 2 3 rabbit 4 5 6

select columns by name

df.filter(items=["one", "three"]) one three mouse 1 3 rabbit 4 6

select columns by regular expression

df.filter(regex="e$", axis=1) one three mouse 1 3 rabbit 4 6

select rows containing 'bbi'

df.filter(like="bbi", axis=0) one two three rabbit 4 5 6