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

如何批量删除DataFrame中的字符串类型列,无需逐个操作?

批量删除DataFrame中的字符串列,保留数值型列

这问题我日常处理数据时经常碰到,完全不用手动逐个列名删除,pandas有现成的方法可以一步搞定,而且完美兼容带NaN的数值列,下面给你两种最常用的方案:

方案1:直接选择要保留的数值类型列

用select_dtypes()方法,指定要保留的整数和浮点类型,自动过滤掉字符串(object类型)列:

import pandas as pd

# 假设你的DataFrame名为df
filtered_df = df.select_dtypes(include=['int64', 'float64'])

注:如果你的整数列因为包含NaN被自动转为float类型也没关系,这个方法依然会保留它们,pandas会识别这些列的数值属性。

方案2:排除字符串类型列

如果想更直接,直接指定要排除的object类型(字符串列的默认类型),剩下的就是所有数值型列:

filtered_df = df.select_dtypes(exclude=['object'])

进阶技巧:通用数值类型匹配

如果你的数据里有其他数值类型(比如int32、float32),可以用'number'这个通用类型来匹配所有数值列,省得逐个列类型写:

filtered_df = df.select_dtypes(include='number')

要是不想保留布尔型(bool也是数值子类),可以再加排除条件:

filtered_df = df.select_dtypes(include='number', exclude=['bool'])

小提示

不确定各列类型的话,可以先执行print(df.dtypes)查看所有列的类型,确认哪些是object类型的字符串列,心里更有数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 21:58:14