【发布时间】:2021-11-09 22:13:09
【问题描述】:
我一直在研究过滤和子集 pandas DataFrame 的不同方法,并遇到了 pandas.DataFrame.filter() 方法。但是,我无法弄清楚为什么人们会在另一种过滤方法(loc、iloc、逻辑运算符、str.contains()、.query() 等)上使用它。任何人都可以提供一个示例,说明何时使用 .filter() 而不是替代方法?
【问题讨论】:
-
在 pandas api 中有很多方法可以做同样的事情。最近,维护人员一直在积极尝试弃用重复方法以试图简化库(即删除
lookup并且目前弃用 sum、mean、any 等的level参数)。您当然可以像df.loc[:, df.columns.str.contains('foo')]这样子集,但为了清楚和简洁,df.filter(like='foo')更好一点 IMO -
^ 更不用说
filter方法有很多额外的错误处理,以防你的列标签不是字符串
标签: python pandas dataframe filter