我想用 bool 值创建一个 DataFrame,其中 np.nan == False 和任何正实数值 == True。
import numpy as np
import pandas as pd
DF = pd.DataFrame({'a':[1,2,3,4,np.nan],'b':[np.nan,np.nan,np.nan,5,np.nan]})
DF.apply(bool) # Does not work
DF.where(DF.isnull() == False) # Does not work
DF[DF.isnull() == False] # Does not work
最佳答案
很奇怪,但它看起来像 - np.isnan(df)
以压倒性优势胜过 pd.notnull(df)
:
In [1]: import pandas as pd
In [2]: import numpy as np
In [3]: df = pd.DataFrame({'a':[1,2,3,4,np.nan],'b':[np.nan,np.nan,np.nan,5,np.nan]})
In [4]: - np.isnan(df)
Out[4]:
a b
0 True False
1 True False
2 True False
3 True True
4 False False
In [5]: %timeit - np.isnan(df)
10000 loops, best of 3: 159 us per loop
In [6]: %timeit pd.notnull(df)
1000 loops, best of 3: 1.22 ms per loop
关于python - 返回一个 bool 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15061442/