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

如何获取Pandas DataFrame中含空值/空白值的行号与对应列名

Pandas逐行校验空值实现方案

核心逻辑是先统一空值判断标准,再通过行遍历筛选空值对应的列名,最终可以直接生成符合要求的JSON数据上报。

完整实现代码

import pandas as pd
import json
import requests

# 1. 构造示例DataFrame(实际使用时替换为你自己的数据源即可)
df = pd.DataFrame({
    'ID': [100, 233, 344],
    'Name': ['', 'Alex', 'Ruther'],
    'Dept': ['Finance', '', 'Sales'],
    'Zipcode': ['173212', '', '173453']
})

# 2. 统一空值判断规则:将全空白字符串(含空串、仅含空格的内容)替换为pd.NA,避免漏判
df = df.replace(r'^\s*$', pd.NA, regex=True)

# 3. 存储异常行数据,后续直接转JSON发送请求
error_records = []

# 4. 逐行遍历校验
for index, row in df.iterrows():
    # 行号从1开始计数,符合业务使用习惯
    Row_Number = index + 1
    # 筛选当前行空值对应的列名
    Column_Names = row[row.isna()].index.tolist()
    # 仅当前行存在空值时输出、记录
    if Column_Names:
        print(f"Row_Number = {Row_Number}")
        print(f"Column Names = {Column_Names}\n")
        error_records.append({
            "row_number": Row_Number,
            "empty_columns": Column_Names
        })

# 5. 发送POST请求到下游接口示例
# post_url = "替换为你的下游接口地址"
# headers = {"Content-Type": "application/json"}
# resp = requests.post(post_url, data=json.dumps(error_records), headers=headers)

运行输出结果

Row_Number = 1
Column Names = ['Name']

Row_Number = 2
Column Names = ['Dept', 'Zipcode']

说明

  • 如果你不需要上报所有异常行,而是逐行发送请求,可在循环内拿到Row_Number和Column_Names后直接构造JSON发送即可,不需要存到error_records列表。
  • 代码中的正则替换逻辑已经覆盖了空值、空白值两种判断场景,不需要额外写判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:51:04