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

如何使用pandas逐行校验字段值类型并生成对应类型判断列

逐行校验DataFrame字段类型实现

需求说明

现有包含Name、Age两个字段的DataFrame,存在值类型不符合预期的异常值,原始数据如下:

NameAge
John20.5
Alice39.1
Pam41.0
203921Hope

需要新增两个校验列:

  • Name_Type:该行Name值为字符串类型时返回True,否则返回False
  • Age_Type:该行Age值为浮点类型时返回True,否则返回False

校验规则要求:Name列中John、Alice、Pam对应Name_Type为True,203921对应为False;Age列中20.5、39.1、41.0对应Age_Type为True,Hope对应为False。

实现代码

pandas中混合类型的列会被统一识别为object类型,直接查看列dtype无法定位单条异常值,需要逐行取单个值用isinstance判断原生类型,代码如下:

import pandas as pd

# 构建原始测试DataFrame
df = pd.DataFrame({
    "Name": ["John", "Alice", "Pam", 203921],
    "Age": [20.5, 39.1, 41.0, "Hope"]
})

# 逐行生成类型校验列
df["Name_Type"] = df["Name"].apply(lambda x: isinstance(x, str))
df["Age_Type"] = df["Age"].apply(lambda x: isinstance(x, float))

运行结果

执行代码后输出的DataFrame如下,完全匹配预期校验结果:

索引NameAgeName_TypeAge_Type
0John20.5TrueTrue
1Alice39.1TrueTrue
2Pam41.0TrueTrue
3203921HopeFalseFalse

避坑提示:如果后续需要扩展其他类型校验,直接修改isinstance的第二个参数即可,比如校验整数类型就传入int,校验布尔类型传入bool,不要尝试用正则匹配值的格式判断类型,准确率远低于原生类型判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:21:20