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

Pandas如何计算每行指定列缺失值对应的ID列表

Pandas 实现每行指定列缺失对应ID列表计算

核心实现代码

import pandas as pd
import numpy as np

# 定义需要检查缺失的列,列顺序对应ID 0~4
check_cols = ['DIVISION', 'STORE_ID', 'FORECAST_DATE', 'START_TIME', 'FULFILLMENT_TYPE']

# 生成MISSING_ID列
df['MISSING_ID'] = df[check_cols].isna().apply(
    lambda row: [idx for idx, is_missing in enumerate(row) if is_missing] or np.nan,
    axis=1
)

逻辑说明

  1. 先按ID对应顺序定义要检查的列列表,后续调整检查列或ID对应关系只需修改该列表顺序即可,无需改动逻辑
  2. 用isna()生成指定列的布尔缺失掩码,缺失位置为True
  3. 逐行遍历掩码,收集所有值为True的位置索引(即对应缺失列的ID)
  4. 利用Python空列表布尔值为False的特性,无缺失时直接返回np.nan,符合预期输出要求

优势对比

  • 无需生成多余的辅助列,代码简洁易维护
  • 比多分支np.where写法扩展性更强,调整规则成本更低

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:06:03