要按函数筛选pandas索引,可以使用DataFrame
的apply()
方法。以下是一个示例代码,演示了如何使用apply()
方法根据指定的函数筛选索引:
import pandas as pd
# 创建一个示例DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data, index=['foo', 'bar', 'baz'])
# 定义一个筛选函数,返回True表示保留索引,返回False表示删除索引
def filter_func(index):
return index.startswith('b')
# 使用apply方法筛选索引
filtered_df = df[df.index.to_series().apply(filter_func)]
# 打印筛选后的DataFrame
print(filtered_df)
输出结果为:
A B
bar 2 5
baz 3 6
在上述示例中,我们创建了一个包含两列('A'和'B')的DataFrame,并指定了索引为['foo', 'bar', 'baz']
。然后,我们定义了一个筛选函数filter_func()
,该函数接受一个索引值作为参数,并返回一个布尔值,表示是否要保留该索引。
接下来,我们使用apply()
方法将筛选函数应用于索引,并将返回的布尔值序列传递给DataFrame的索引操作,以实现索引筛选。最后,我们打印筛选后的DataFrame,其中只包含满足筛选条件的行。