pandas.DataFrame.select_dtypes#

DataFrame.select_dtypes(include=None, exclude=None)[源代码]#

基于列数据类型返回 DataFrame 的子集。

此方法允许根据数据类型过滤列。当处理异构 DataFrame 且需要在特定数据类型子集上执行操作时,此方法非常有用。

参数:
include, exclude标量或类列表

要包含/排除的数据类型或字符串的选择。必须至少提供其中一个参数。

返回:
DataFrame

DataFrame 的子集,包括 include 中的数据类型,并排除 exclude 中的数据类型。

引发:
ValueError
  • 如果 includeexclude 都为空

  • 如果 includeexclude 具有重叠的元素

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