Skip to main content
 首页 » 编程设计

python之仅检查数据框中是否存在列值

2025年05月04日12yyy_WW

我有以下数据框:

          col1                col2         col3 
0          1601286            NAN         NAN 
1          1601286            1135         2018-12-31 
2          1601286            NAN         NAN 
3          1601286            1135         2018-12-31 
4          1601286            NAN         2018-12-31 
5          1601286            1135         2018-12-31 
6          1601286            1135         2018-12-31 
7          1601286            1135         2018-12-31 
8          1601286            NAN        NAN 

我需要验证这 3 列中只有一列应该有值。如果不止一个是 notnull(),它应该是一个 False。

比如上面数据的输出应该是,

0 True 
1 False 
2 True 
3 False 
4 False 
5 False 
6 False 
7 False 
8 True 

尝试做类似下面的事情是肯定行不通的:-

df= df[['col1', 'col2', 'col3']].notnull().any(axis=1) 

我该如何处理。

请您参考如下方法:

使用 isnull和 sum :

df.isnull().sum(1).eq(2) 

或:

df.isnull().sum(1).gt(1) 

或:

df.notnull().sum(1).lt(2) 

或:

df.notnull().sum(1).eq(1) 
 
0     True 
1    False 
2     True 
3    False 
4    False 
5    False 
6    False 
7    False 
8     True 
dtype: bool