如何创建执行以下操作的if语句:
if all values in dataframe are nan:
do something
else:
do something else
根据this post,可以检查DataFrame的所有值是否为NaN。我知道有人做不到:
if df.isnull().all():
do something
它返回以下错误:
ValueError:系列的真值是不明确的。使用a.empty, a.bool(),a.item(),a.any()或a.all()。
答案 0 :(得分:9)
需要另一个SQL> drop table p23 cascade constraints;
Table dropped.
SQL> desc t23
Name Null? Type
----------------------------------------- -------- ----------------------------
COLA NUMBER
COLB NUMBER
COLC NUMBER
GENDER VARCHAR2(1)
ID NUMBER
SQL> select * from v23
2 /
select * from v23
*
ERROR at line 1:
ORA-04063: view "FOX.V23" has errors
SQL>
,因为首先all
返回all
而另一个Series
:
scalar
样品:
if df.isnull().all().all():
do something
如果需要更快的解决方案 - numpy.isnan
与numpy.all
,但首先将values
的所有值转换为df = pd.DataFrame(index=range(5), columns=list('abcde'))
print (df)
a b c d e
0 NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN
4 NaN NaN NaN NaN NaN
print (df.isnull())
a b c d e
0 True True True True True
1 True True True True True
2 True True True True True
3 True True True True True
4 True True True True True
print (df.isnull().all())
a True
b True
c True
d True
e True
dtype: bool
print (df.isnull().all().all())
True
if df.isnull().all().all():
print ('do something')
:
numpy array
<强>计时强>:
print (np.isnan(df.values).all())
True