在大熊猫查询时,如何跳过无过滤器?
问题描述:
如何跳过(不应用)无过滤器?在大熊猫查询时,如何跳过无过滤器?
res = df[
(df['Column1'] >= column1_min) & (df_item['Column1'] <= column1_max) &
(df['Column2'].isin(column2)) &
(df['Column3'] == column3) &
#.....
也就是说,如果column1_min
或column1_max
或column2
或column3
是None
,那么就不要对它们进行过滤。在这里他们都应用在任何情况下。如果它们中的任何一个是None
,它将搜索None
值,这不是我想要的值。
答
如果我深知,你可以试试这个:
res = df[((df['Column1'] >= column1_min) if column1_min != None else True) &
((df['Column1'] <= column1_max) if column1_max != None else True) &
((df['Column2'].isin(column2)) if column2 != None else True) &
((df['Column3'] == column3 ) if column3 != None else True)]
这是一个有点长,但预期应该工作。
如果值不是None
,则评估条件。如果是None
,则条件为True
,这不会影响查询。