# Python数据处理从零开始----第二章（pandas）（十一）通过列属性对列进行筛选

### 参数：

include，exclude：选择要包含/排除的dtypes或字符串。必须至少提供其中一个参数。

### 返回：

subset：DataFrame,包含或者排除dtypes的的子集

### 实例

• 新建数据集
```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```

228 篇文章44 人订阅

0 条评论