我有一个 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)
