目录
第二章(pandas)
Python数据处理从零开始—-第二章(pandas)①删除列
Python数据处理从零开始—-第二章(pandas)②处理缺失数据
Python数据处理从零开始—-第二章(pandas)③数据标准化(1)
Python数据处理从零开始—-第二章(pandas)④数据合并和处理重复值
Python数据处理从零开始—-第二章(pandas)⑤pandas与R
Python数据处理从零开始—-第二章(pandas)⑥相关性分析
Python数据处理从零开始—-第二章(pandas)⑦pandas读写csv文件(1)
Python数据处理从零开始—-第二章(pandas)⑧pandas读写csv文件(2)
Python数据处理从零开始—-第二章(pandas)⑧pandas读写csv文件(3)
Python数据处理从零开始—-第二章(pandas)⑨pandas读写csv文件(4)
Python数据处理从零开始—-第二章(pandas)(十)pandas合并数据
Python数据处理从零开始—-第二章(pandas)(十一)通过列属性对列进行筛选
本文主要目的是通过列属性进行列挑选,比如在同一个数据框中,有的列是整数类的,有的列是字符串列的,有的列是数字类的,有的列是布尔类型的。假如我们需要挑选或者删除属性为整数类的列,就可能需要用到pandas.DataFrame.select_dtypes函数功能
该函数的主要格式是:DataFrame.select_dtypes(include = None,exclude = None),返回DataFrame列的子集。
参数:
include,exclude:选择要包含/排除的dtypes或字符串。必须至少提供其中一个参数。
返回:
subset:DataFrame,包含或者排除dtypes的的子集
笔记
要选取所有数字类的列,请使用np.number或’number’
要选取字符串的列,必须使用‘object’
要选择日期时间,请使用np.datetime64,’datetime’或’datetime64′
要选取所有属性为‘类’的列,请使用“category”
实例
- 新建数据集
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': [1, 2] * 3,
'b': [True, False] * 3,
'c': [1.0, 2.0] * 3,
'e' : ['asian','white','black','white','asian','white'] ,
'd' :['low','low','low','median','high','high']})
df['d'] = df['d'].astype('category')
df
Out[46]:
a b c e d
0 1 True 1.0 asian low
1 2 False 2.0 white low
2 1 True 1.0 black low
3 2 False 2.0 white median
4 1 True 1.0 asian high
5 2 False 2.0 white high
我们构建了一个数据框,每一列的属性均不同。
a列为‘integer’数字类型,
b列为‘bool’布尔类型,
c列为‘数字’类型,
d列为‘category’分类类型,
e列为‘object’字符串类型
- 挑选数据框子集
df.select_dtypes(include='bool')
Out[48]:
b
0 True
1 False
2 True
3 False
4 True
5 False
df.select_dtypes(include=['float64'])
Out[49]:
c
0 1.0
1 2.0
2 1.0
3 2.0
4 1.0
5 2.0
df.select_dtypes(include=['number'])
Out[50]:
a c
0 1 1.0
1 2 2.0
2 1 1.0
3 2 2.0
4 1 1.0
5 2 2.0
df.select_dtypes(include=['category'])
Out[51]:
d
0 low
1 low
2 low
3 median
4 high
5 high
df.select_dtypes(include=['integer'])
Out[52]:
a
0 1
1 2
2 1
3 2
4 1
5 2
df.select_dtypes(include=['object'])
Out[53]:
e
0 asian
1 white
2 black
3 white
4 asian
5 white
- 排除类型属性的列
df.select_dtypes(exclude=['float64'])
Out[55]:
a b e d
0 1 True asian low
1 2 False white low
2 1 True black low
3 2 False white median
4 1 True asian high
5 2 False white high