pandas.DataFrame.filter() 方法用于对 DataFrame 进行子集选择,提供灵活的过滤功能。它可以基于列名、行名(索引)、或者自定义的过滤条件来选择特定的行或列。本文主要介绍一下Pandas中pandas.DataFrame.filter方法的使用。

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

根据指定索引中的标签对数据框的行或列进行子集设置。

请注意,此例程不会在其内容上过滤数据框。过滤器将应用于索引标签。

参数

items : 类似列表(list)

保持标签中轴的位置。

like : 字符串

保持标签远离类似于label == True的axis。

regex : 字符串(正则表达式)

保持标签远离

re.search(regex,label)== True的axis。

axis : 整数或字符串axis名称

要过滤的轴。默认情况下,这是信息轴,

‘index’用于Series

‘columns’用于DataFrame。

返回值

与输入对象相同的类型

Notes

items,like和regex参数执行相互排斥。

axis默认为使用[]建立索引时使用的信息轴。

例子

1)按列名过滤(使用 items 参数)

import pandas as pd

# 创建示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

# 保留指定列 'A' 和 'B'
filtered_df = df.filter(items=['A', 'B'], axis=1)
print(filtered_df)

2)按列名包含的子字符串过滤(使用 like 参数)

import pandas as pd

# 创建示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

# 筛选列名中包含 'A' 的列
filtered_df = df.filter(like='A', axis=1)
print(filtered_df)

3)使用正则表达式过滤列名(使用 regex 参数)

import pandas as pd

# 创建示例 DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

# 筛选列名以 'B' 或 'C' 结尾的列
filtered_df = df.filter(regex='[BC]$', axis=1)
print(filtered_df)

4)按行名过滤(axis=0

import pandas as pd

# 创建 DataFrame 并设置索引
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}, index=['row1', 'row2', 'row3'])

# 保留指定行 'row1' 和 'row3'
filtered_df = df.filter(items=['row1', 'row3'], axis=0)
print(filtered_df)

推荐文档

相关文档

大家感兴趣的内容

随机列表