如何用python进行数据筛选_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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值