2015-10-06 98 views
1

如何跳過(不應用)無過濾器?在大熊貓查詢時,如何跳過無過濾器?

res = df[ 
    (df['Column1'] >= column1_min) & (df_item['Column1'] <= column1_max) & 
    (df['Column2'].isin(column2)) & 
    (df['Column3'] == column3) & 
    #..... 

也就是說,如果column1_mincolumn1_maxcolumn2column3None,那麼就不要對它們進行過濾。在這裏他們都應用在任何情況下。如果它們中的任何一個是None,它將搜索None值,這不是我想要的值。

回答

1

如果我深知,你可以試試這個:

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,這不會影響查詢。