pandas 数据帧过滤器对所有行 return 为真。如何?

pandas dataframe filter to return True for ALL rows. how?

您好,我有一个过滤器 'm' 集,它足够灵活,可以由我更改。有时,我想按 Car 或 x_acft_body 或任何其他字段等进行过滤。有时我想 所有行 returned通过评论和取消评论所需的行。但是在不更改后续代码的情况下,在过滤器 'm' 行之后。

当我不想应用过滤器时,我如何才能拥有一个对所有行都 return 正确的过滤器?例如类似 1==1 但我知道这行不通。

我不想设置 dfdata.somefield.notnull() 等,因为我不太确定此字段是否始终不为空。我也 不想将后续代码 更改为 dfdata.groupby. 即没有 [m]

# set filter if needed
m = (   1==1 #& return true at all times
#         (dfdata.Car == 'PG') #&
#         (dfdata.x_acft_body == 'N')# &
#         (dfdata.Car.isin(['PG', 'VJ', 'VZ']))
)


dft1 = dfdata[m].groupby(['FLD1']).agg({'FLD2': 'count'})

您可以创建 bool 常量并通过它更改最终掩码:

#True for return all rows
m = (dfdata.Car == 'PG') | True

并且:

#False for apply filter
m = (dfdata.Car == 'PG') | False

第一个解决方案:

m = [True] * len(df.index)

m = np.repeat(True, len(df.index))