pandas.Series.filter#
- Series.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
axisargument. 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’ for
DataFrame. ForSeriesthis parameter is unused and defaults toNone.
- Returns:
- Same type as caller
The filtered subset of the DataFrame or Series.
See also
DataFrame.locAccess a group of rows and columns by label(s) or a boolean array.
Notes
The
items,like, andregexparameters are enforced to be mutually exclusive.axisdefaults 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