Skip to main content
 首页 » 编程设计

python之Pandas之过滤和正则表达式搜索 DataFrame 的索引

2025年05月04日23lvdongjie

我有一个 DataFrame,其中的列是 MultiIndex,索引是名称列表,即 index=['Andrew', 'Bob', 'Calvin',...]。

我想创建一个函数来返回数据框中所有使用名称“Bob”或以字母“A”开头或以小写字母开头的行。如何做到这一点?

我用正则表达式参数查看了 df.filter(),但它失败了,我得到:

df.filter(regex='a') 
TypeError: expected string or buffer 

或:

df.filter(regex=('a',1) 
TypeError: first argument must be string or compiled pattern 

我已经尝试过其他方法,例如传递 re.compile('a') 无济于事。

请您参考如下方法:

看来我的 filter 问题的一部分是我使用的是过时版本的 pandas。更新后,我不再收到 TypeError。经过一番尝试后,看起来我可以使用 filter 来满足我的需要。这是我的发现。

只需设置 df.filter(regex='string') 即可返回与正则表达式匹配的列。这看起来与 df.filter(regex='string', axis=1) 相同。

要搜索索引,我只需执行 df.filter(regex='string', axis=0)