<分区>
我在 Pandas 中工作,我想将多个过滤器应用于跨多个字段的数据框。
我正在处理另一个更复杂的数据框,但我正在简化这个问题的上下文。这是示例数据框的设置:
dates = pd.date_range('20170101', periods=16)
rand_df = pd.DataFrame(np.random.randn(16,4), index=dates, columns=list('ABCD'))
对这个数据框应用一个过滤器是有据可查的,而且很简单:
rand_df.loc[lambda df: df['A'] < 0]
因为 lambda 看起来像一个简单的 bool 表达式。很想做以下事情。这是行不通的,因为它不是 bool 表达式,而是可调用的。其中的多个不能像 bool 表达式那样组合:
rand_df.loc[lambda df: df['A'] < 0 and df[‘B’] < 0]
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-31-dfa05ab293f9> in <module>()
----> 1 rand_df.loc[lambda df: df['A'] < 0 and df['B'] < 0]
我找到了两种成功实现它的方法。我会将它们添加到潜在的答案中,因此您可以直接将它们作为解决方案进行评论。但是,我想征求其他方法,因为我不太确定这两种方法是否是过滤 Pandas 数据框的非常标准的方法。