pandas.DataFrame.select_dtypes#
- DataFrame.select_dtypes(include=None, exclude=None)[源代码]#
基于列数据类型返回 DataFrame 的子集。
此方法允许根据数据类型过滤列。当处理异构 DataFrame 且需要在特定数据类型子集上执行操作时,此方法非常有用。
- 参数:
- include, exclude标量或类列表
要包含/排除的数据类型或字符串的选择。必须至少提供其中一个参数。
- 返回:
- DataFrame
DataFrame 的子集,包括
include中的数据类型,并排除exclude中的数据类型。
- 引发:
- ValueError
如果
include和exclude都为空如果
include和exclude具有重叠的元素
- TypeError
如果传入任何字符串数据类型。
另请参阅
DataFrame.dtypes返回包含每列数据类型的 Series。
注意
要选择所有数值类型,请使用
np.number或'number'要选择字符串,您必须使用
object数据类型,但请注意,这将返回所有 object 数据类型列。启用pd.options.future.infer_string后,使用"str"可以选择所有字符串列。请参阅 numpy 数据类型层次结构
要选择日期时间,请使用
np.datetime64、'datetime'或'datetime64'要选择时间差,请使用
np.timedelta64、'timedelta'或'timedelta64'要选择 Pandas 分类数据类型,请使用
'category'要选择 Pandas 带时区日期时间数据类型,请使用
'datetimetz'或'datetime64[ns, tz]'
示例
>>> df = pd.DataFrame( ... {"a": [1, 2] * 3, "b": [True, False] * 3, "c": [1.0, 2.0] * 3} ... ) >>> df a b c 0 1 True 1.0 1 2 False 2.0 2 1 True 1.0 3 2 False 2.0 4 1 True 1.0 5 2 False 2.0
>>> df.select_dtypes(include="bool") b 0 True 1 False 2 True 3 False 4 True 5 False
>>> df.select_dtypes(include=["float64"]) c 0 1.0 1 2.0 2 1.0 3 2.0 4 1.0 5 2.0
>>> df.select_dtypes(exclude=["int64"]) b c 0 True 1.0 1 False 2.0 2 True 1.0 3 False 2.0 4 True 1.0 5 False 2.0