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

如何使用apply、map或applymap查询pandas DataFrame行列的数据类型

实现方案

pandas 默认的df.dtypes仅会返回列的顶层推断类型,不会识别列内混合的不同元素类型,你可以按以下需求用对应的方法实现:

逐元素查看实际数据类型

直接用applymap(pandas 2.1+ 推荐用map)逐元素调用类型检测:

# 返回类型对象
element_type_df = df.applymap(type)

# 如需更易读的类型名文本,改成以下写法
element_type_df = df.applymap(lambda x: type(x).__name__)

统计每列包含的所有唯一数据类型

适合快速排查混合类型列的类型组成:

col_type_summary = element_type_df.apply(lambda col: col.unique().tolist(), axis=0)

执行后你可以直接看到对应列的所有类型,比如混合了list和str的列,返回结果为['list', 'str']。

统计每行包含的所有唯一数据类型

调整apply的axis参数即可按行统计:

row_type_summary = element_type_df.apply(lambda row: row.unique().tolist(), axis=1)

补充说明

  • 若需要筛选指定类型的行/单元格,可以直接用element_type_df做布尔索引,比如筛选col1列值为dict的所有行:df[element_type_df['col1'] == 'dict']
  • 大体积DataFrame逐元素处理性能会稍慢,仅建议做数据探查时使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:15:07