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

如何用单行代码获取pandas DataFrame所有数值类型列名?

获取DataFrame所有数值类型列名称的单行解决方案

方法1:使用select_dtypes(最简洁高效)

pandas的select_dtypes方法专门用于按数据类型筛选列,指定include='number'会匹配所有数值类型(包括int8/uint16/float32等所有尺寸的子类型),单行即可提取列名列表:

import numpy as np
import pandas as pd

test_df = pd.DataFrame(data=[{"str_col": "some string",
                              "int_col": 0,
                              "float_col": 3.1415,
                              "uint_col": np.uint8(255)}])

# 单行代码
numeric_columns = test_df.select_dtypes(include='number').columns.tolist()
print(numeric_columns)  # 输出: ['int_col', 'float_col', 'uint_col']

方法2:基于dtypes与np.issubdtype

如果需要基于dtypes做底层类型检测,可利用np.issubdtype判断列类型是否属于数值类型的子类,避免仅匹配特定尺寸的int/float:

# 单行代码
numeric_columns = test_df.dtypes[test_df.dtypes.apply(lambda dtype: np.issubdtype(dtype, np.number))].index.tolist()
print(numeric_columns)  # 输出: ['int_col', 'float_col', 'uint_col']

说明

  • 两种方法都支持大表(数百列)的向量化处理,无性能瓶颈
  • select_dtypes直观易读,是官方推荐的常规用法
  • np.issubdtype能精准判断类型继承关系,覆盖所有数值子类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 14:57:02