Pandas DataFrame.select_dtypes() 用法详解

Pandas DataFrame.select_dtypes() 用法详解

DataFrame.select_dtypes() 是 Pandas 中用于按数据类型筛选列的方法,它可以帮助你快速选择特定数据类型的列进行分析或处理。

基本语法

DataFrame.select_dtypes(
    include=None,  # 包含的数据类型
    exclude=None   # 排除的数据类型
)

参数说明

参数说明
include选择包含的数据类型(字符串或列表)
exclude选择排除的数据类型(字符串或列表)

数据类型标识符

常用的数据类型标识符包括:

  • 'number':所有数值类型(int, float等)
  • 'float':浮点型
  • 'int':整型
  • 'bool':布尔型
  • 'object':字符串或混合类型
  • 'datetime':日期时间
  • 'timedelta':时间差
  • 'category':分类数据

使用示例

1. 选择数值型列

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, 2, 3],               # 整型
    'B': [1.1, 2.2, 3.3],         # 浮点型
    'C': ['x', 'y', 'z'],         # 字符串
    'D': pd.to_datetime(['2020-01-01', '2020-01-02', '2020-01-03']),  # 日期时间
    'E': [True, False, True]      # 布尔型
})

# 选择所有数值型列
numeric_cols = df.select_dtypes(include='number')
print(numeric_cols)

输出:

   A    B
0  1  1.1
1  2  2.2
2  3  3.3

2. 排除特定类型列

# 排除字符串和日期时间列
non_obj_cols = df.select_dtypes(exclude=['object', 'datetime'])
print(non_obj_cols)

输出:

   A    B      E
0  1  1.1   True
1  2  2.2  False
2  3  3.3   True

3. 组合使用include和exclude

# 选择数值型但排除整型
float_only = df.select_dtypes(include='number', exclude='int')
print(float_only)

输出:

     B
0  1.1
1  2.2
2  3.3

高级用法

1. 选择多个数据类型

# 选择字符串和布尔型列
selected = df.select_dtypes(include=['object', 'bool'])
print(selected)

2. 使用Numpy数据类型

# 选择np.float64类型列
float64_cols = df.select_dtypes(include=[np.float64])

3. 实际应用场景

# 数据预处理示例:只对数值列做标准化
from sklearn.preprocessing import StandardScaler

numeric_cols = df.select_dtypes(include='number')
scaler = StandardScaler()
df[numeric_cols.columns] = scaler.fit_transform(numeric_cols)

注意事项

  1. 如果指定的类型在DataFrame中不存在,会返回空的DataFrame
  2. 可以同时使用includeexclude参数
  3. 类型名称不区分大小写('number’和’NUMBER’等效)
  4. 对于自定义数据类型,需要使用实际的数据类型对象

性能提示

对于大型DataFrame,select_dtypes()比手动遍历列并检查类型更高效,因为它是向量化操作。

select_dtypes()是数据清洗和特征工程中非常有用的工具,特别是在需要按数据类型进行不同处理的场景下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值