【发布时间】:2022-01-07 13:10:59
【问题描述】:
我正在使用 pandas,并且遇到过一些情况,我有一个以编程方式生成的条件列表,就像这样
conditionals = [
df['someColumn'] == 'someValue',
df['someOtherCol'] == 'someOtherValue',
df['someThirdCol'].isin(['foo','bar','baz']),
]
我想选择所有这些条件都为真的行。我想我会做这样的事情。
bigConditional = IHaveNoIdeaOfWhatToPutHere
for conditional in conditionals:
bigConditional = bigConditional && conditional
filteredDf = df[bigConditional]
我知道我想使用 identity 属性,其中 bigConditional 为我的数据框中的每个索引初始化为一系列 true,这样如果我的条件列表中的任何条件评估为 false,则该行将不在过滤后的数据框,但最初会考虑每一行。
我不知道该怎么做,或者至少不是表明这是故意的最好最简洁的方式
另外,我遇到了相反的情况,我只需要一个条件来匹配以将行包含到新数据框中,因此我需要将 bigConditional 设置为 false 为数据框中的每个索引。
【问题讨论】: