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

目录

第二章(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
    原文作者:左手柳叶刀右手小鼠标
    原文地址: https://www.jianshu.com/p/e17e15ce987c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞