pandas.DataFrame.filter#

DataFrame.filter(items=None, like=None, regex=None, axis=None)[源代码]#

根据指定的索引标签对 DataFrame 或 Series 进行子集化。

对于 DataFrame,根据 axis 参数过滤行或列。请注意,此例程不根据内容进行过滤。过滤器应用于索引的标签。

参数:
项目list-like

保留在项目中的轴标签。

str

保留轴标签,其中“like in label == True”。

正则表达式str (正则表达式)

保留那些 re.search(regex, label) == True 的轴标签。

{0 或 ‘index’, 1 或 ‘columns’, None}, 默认 None

要过滤的轴,可以表示为索引(int)或轴名称(str)。默认情况下,这是信息轴,对于 DataFrame 是 ‘columns’。对于 Series,此参数未使用且默认为 None

返回:
与调用者类型相同

DataFrame 或 Series 的过滤子集。

参见

DataFrame.loc

通过标签或布尔数组访问一组行和列。

备注

itemslikeregex 参数被强制为互斥的。

axis 默认为在使用 [] 进行索引时使用的信息轴。

示例

>>> 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