在数据框过滤器中包含 None

Including None in dataframe filter

我有一个名为 df 的数据框:

     col1    col2
      1       2
      3       3
      7       8
      5       2
     12       8
      5       None

我想使用pandas.series.isin来过滤数据框,我想从df中过滤数据,其中col2只包含数字2,8和None,所以新的数据框是:

     col1    col2
      1       2
      7       8
      5       2
     12       8
      5       None

我试过:

filter1 = [2,8,'None']
filter2 = [2,8,np.nan]
filter3 = [2,8,'']

df.col2.isin(filter1)
df.col2.isin(filter2)
df.col2.isin(filter3)

结果总是:

     col1    col2
      1       2
      7       8
      5       2
     12       8

我似乎无法确定什么是 None 以及如何将其包含到过滤器中。

在过滤器中传递 None 时排除 ''

filter1 = [2,8,None]

如果您想包含任何空值:

filter = df['col2'].isin([2,8]) | df['col2'].isnull()
df_filtered = df.loc[filter]