python集合空值删除

如何把python集合中的空值删除

import pandas as pd
import numpy as np
df=pd.DataFrame({'a':[1,np.nan],
'b':['x',np.nan]})

s1=set(df['a'])
s2=set(df['b'])

s1.remove(np.nan)
s2.remove(np.nan)

print(s1,s2)

集合s1 的空值跟整数一列,运行remove(np.nan) 报错,但是s2可以正常删除
我已经试过几种方法,如remove(None)等,都无法解决删除s1中的空值
我想要达到的结果: 不提前用df.fillna()的方法, 直接删除s1中的空值

import pandas as pd
import numpy as np
import math
df=pd.DataFrame({'a':[1,np.nan],
'b':['x',np.nan]})

s1=set(df['a'])
s2=set(df['b'])
s1 = set([x for x in s1 if not math.isnan(x)])
print(s1)

集合用 .discard() 方法:

>>> import numpy as np
>>> np.nan
nan
>>> a = set([1,2,np.nan,3,4,np.nan,4,5])
>>> a
{nan, 1, 2, 3, 4, 5}
>>> a.discard(np.nan)
>>> a
{1, 2, 3, 4, 5}

s2测试了,也能通过的