Pandas每日函数学习之filter函数(pandas groupby filter)

Pandas每日函数学习之filter函数(pandas groupby filter)

编程文章jaq1232025-07-23 15:11:225A+A-

filter函数提供了一种便捷的方法来过滤数据框(DataFrame)的轴(行或列),根据指定的条件对轴标签进行筛选。filter 函数提供了一种灵活的方式来根据标签的名称筛选行或列,但它不会对数据框的内容进行过滤。如果你需要基于数据框的内容进行过滤,应该使用布尔索引或 query 方法。

基本语法

DataFrame.filter(items=None, like=None, regex=None, axis=None)

items: 用于选择的标签列表。只有在轴标签完全匹配 items 中的元素时,才会被选中。
like: 一个字符串,用于筛选包含这个字符串的轴标签。
regex: 使用正则表达式来筛选轴标签。
axis: 指定要过滤的轴。默认为列(axis=0 或 axis='columns')。如果要过滤行,可以设置为 axis=1 或 axis='index'。

示例

假设我们有以下 DataFrame

import pandas as pd

df = pd.DataFrame({
    'A': range(1, 6),
    'B': range(10, 15),
    'C': range(20, 25),
    'D': range(30, 35)
})

使用 items 参数,如果你想选择列 'A' 和 'C':

filtered = df.filter(items=['A', 'C'])
print(filtered)

使用 like 参数,如果你想选择包含字母 'B' 的列:

filtered = df.filter(like='B')
print(filtered)

使用 regex 参数,如果你想选择以字母 'C' 或 'D' 开头的列:

filtered = df.filter(regex='^(C|D)')
print(filtered)

指定 axis 参数

如果你的 DataFrame 的行标签包含特定的字符串或符合某个正则表达式,你也可以使用 filter 函数来筛选行。例如,假设 DataFrame 的索引(行标签)如下。

df.index = ['item1', 'item2', 'item3', 'item4', 'item5']

如果你想筛选出索引包含 'item3' 的行:

filtered = df.filter(like='item3', axis=0)
print(filtered)
点击这里复制本文地址 以上内容由jaq123整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

苍茫编程网 © All Rights Reserved.  蜀ICP备2024111239号-21