You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测DataFrame中相邻列空值时C1/C2是否有值

解决方法

首先用pandas构造你提供的示例DataFrame(空值用NaN表示):

import pandas as pd
import numpy as np

data = {
    'ID': ['AA', 'BB', 'CC', 'DD'],
    'A1': [1, np.nan, np.nan, 2],
    'A2': [3, np.nan, np.nan, 5],
    'B1': [7, np.nan, np.nan, np.nan],
    'B2': [4, np.nan, np.nan, np.nan],
    'C1': [np.nan, np.nan, np.nan, 'A'],
    'C2': [np.nan, np.nan, np.nan, 1]
}
df = pd.DataFrame(data)

接下来按需求逐行判断,关键是给all()和any()加上axis=1参数,让它们按行计算:

  1. 先判断每行的B1、B2是否全为空:
    b_cols_empty = df[['B1', 'B2']].isna().all(axis=1)
    
  2. 再判断每行的C1、C2是否至少有一个非空:
    c_cols_has_value = df[['C1', 'C2']].notna().any(axis=1)
    
  3. 两个条件取交集,筛选出符合要求的行:
    result = df[b_cols_empty & c_cols_has_value]
    

运行后result就会只保留DD行,和你预期的一致。

如果需要给原DataFrame标记符合条件的行,可以新增一列:

df['is_match'] = b_cols_empty & c_cols_has_value

内容的提问来源于stack exchange,提问作者ApacheOne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 03:50:24