一、背景
近期想对比两个不同数据集的数据分布时,遇到一个问题:数据集同时包括离散、连续、时间等不同类型特征。
使用 seaborn.kdeplot
报错,仅只能针对数值型特征进行统计。
遂诞生一个需求:针对数据框,筛选指定数据类型的列。
二、select_dtypes介绍
使用语法为:
data.select_dtypes(include=['object'], exclude=['float64'])
- include -- 符合类型
- exclude -- 排除类型
可以单独使用参数,也可以结合使用,返回的是符合筛选后的数据框。
data.select_dtypes(include=['object']).columns
返回列名。
参数选择有:
数字:number、int、float
buer:bool
时间:datetime64
类别:category
字符串:string
对象:object
三、实操
df.select_dtypes(include=['object'])
df.select_dtypes(include=['object', 'float'])
df.select_dtypes(exclude='object')
四、手动选取
df.loc[:, (df.dtypes == 'float64').values]
五、类型智能转换
df = df.convert_dtypes()
参考链接:pandas选取指定数据类型的列