Pandas 中 series.filter() 方法的作用是什么?


Pandas series 构造函数中的 series.filter() 方法用于根据索引标签子集化 series 对象的行。filter 方法不适用于 series 对象的内容,它仅应用于 series 对象的索引标签。

如果指定的标签与 series 索引标签不匹配,该方法不会引发错误。

filter() 方法的参数包括 items、regex 和 axis。items 参数接受类似列表的对象以访问给定 series 对象中的一组行。regex 参数用于定义可用于检索 series 行的正则表达式。

示例 1

在以下示例中,我们将通过将索引标签列表指定给 filter() 方法来过滤 Pandas series 对象中的某些行。

# importing pandas package
import pandas as pd

# creating pandas Series object
series = pd.Series({'B':'black','Y':'yellow', 'W':'white','R':'red', 'Bl':'blue','G':'green','S':"silver", 'M':"maroon"})

print("Original Series:")
print(series)

print("Output: ")
# Apply the filter method
print(series.filter(['B','R','G','M']))

解释

最初,我们使用 Python 字典创建了一个 series 对象,其中包含键值对。这里,索引标签是通过使用字典的键创建的。

输出

输出如下所示:

Original Series:
B    black
Y    yellow
W    white
R    red
Bl    blue
G    green
S    silver
M    maroon
dtype: object

Output:
B    black
R    red
G    green
M    maroon
dtype: object

我们已成功从初始 series 对象中过滤了指定的行。并且结果 series 对象与输入 series 对象具有相同的数据类型。

示例 2

让我们再取一个 series 对象,使用索引标签过滤一行,并且必须将单个标签值作为可迭代对象的元素来提及,否则会报错。

# importing pandas package
import pandas as pd

# creating pandas Series object
series = pd.Series({1:'East',2:'West',3:'North',4:'South',5:'East',6:'West',7:'North'})
print("Original Series:")
print(series)

print("Output: ")
# Apply the filter method
print(series.filter([2]))

输出

输出如下所示:

Original Series:
1    East
2    West
3    North
4    South
5    East
6    West
7    North
dtype: object

Output:
2    West
dtype: object

正如我们在上面的输出块中看到的,我们已成功从 series 对象中过滤了一个单行的标签。

更新于: 2022-03-07

125 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告