如何从DataFrame中筛选仅包含数值类型的列
从DataFrame中筛选数值类型列的解决方案
如果你需要从混合类型列的DataFrame里只保留数值类型(整数、浮点数等)的列,以下是两种实用的实现方法:
方法1:用select_dtypes快速筛选(推荐)
这是pandas专门提供的列类型筛选工具,直接指定要保留的数值类型即可:
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'A': [17, 23], 'B': [398, 476], 'C': ['file', 'name'] }) # 筛选所有数值类型列 numeric_df = df.select_dtypes(include=['number']) print(numeric_df)
输出结果:
A B 0 17 398 1 23 476
如果只想保留整数类型,可把include改成['int'];要同时包含整数和浮点数,用['int64', 'float64']也可以,'number'是更通用的数值类型别名。
方法2:手动遍历判断列类型
适合需要自定义判断逻辑的场景,通过遍历列并检查数据类型来筛选:
import pandas as pd import numpy as np df = pd.DataFrame({ 'A': [17, 23], 'B': [398, 476], 'C': ['file', 'name'] }) # 筛选数值类型列 numeric_cols = [col for col in df.columns if np.issubdtype(df[col].dtype, np.number)] numeric_df = df[numeric_cols] print(numeric_df)
内容的提问来源于stack exchange,提问作者Shital
相关产品推荐
相关产品推荐

