欢迎访问宙启技术站
智能推送

PythonPandas函数:用Dataframefilter函数筛选指定数据

发布时间:2023-06-18 21:06:30

在数据分析和数据处理的过程中,经常需要对数据做取舍和筛选,以便提取有价值的信息。Python中的Pandas库可以很好地满足数据筛选的需求,其中Dataframe.filter()函数是一种常用的筛选函数。

Dataframe.filter()函数可以根据列(即特征)名字或正则表达式,对数据框的列进行筛选,并返回一个新的数据框。它的常见用法如下:

DataFrame.filter(items=None, like=None, regex=None, axis=None)

其中,items是要包含的列名列表,like是要包含的列名中包含的字符串,regex是要包含的列名中匹配的正则表达式,axis用于选择筛选轴,取值为0或'index'表示按行筛选,取值为1或'columns'表示按列筛选,缺省值为1。

下面,我们将通过三个例子来演示Dataframe.filter()函数的具体使用。

例子1:根据列名进行筛选

我们首先考虑一种简单的情况,即根据列名来筛选数据。假设我们有以下数据框data:

    Name  Age     City  Sex

0   Amy   22  Beijing    F

1   Bob   25  Shanghai   M

2   Bill  30   Tianjin   M

3  Cindy  28  Beijing    F

我们需要从中筛选出Name和Age两列数据。可以使用以下代码:

new_data = data.filter(items=['Name', 'Age'])

其中items参数指定要筛选的列名列表,返回的new_data数据框如下:

    Name  Age

0   Amy   22 

1   Bob   25 

2   Bill  30 

3  Cindy  28

例子2:根据匹配字符串进行筛选

假设我们有以下数据框data:

    Name  Age     City  Sex

0   Amy   22  Beijing    F

1   Bob   25  Shanghai   M

2   Bill  30   Tianjin   M

3  Cindy  28  Beijing    F

我们需要从中筛选出所有列名中包含字母“i”的列。可以使用以下代码:

new_data = data.filter(like='i')

其中like参数指定要包含的列名中包含的字符串,返回的new_data数据框如下:

   City

0  Beijing

1  Shanghai

2  Tianjin

3  Beijing

例子3:根据正则表达式进行筛选

假设我们有以下数据框data:

    Name  Age     City  Sex

0   Amy   22  Beijing    F

1   Bob   25  Shanghai   M

2   Bill  30   Tianjin   M

3  Cindy  28  Beijing    F

我们需要从中筛选出所有以字母“S”开头的列。可以使用以下代码:

import re

new_data = data.filter(regex=re.compile('^S'))

其中regex参数指定要包含的列名中匹配的正则表达式,返回的new_data数据框如下:

       Sex

0  F

1  M

2  M

3  F

综上所述,Dataframe.filter()函数是一种非常方便的数据筛选函数,通过它可以轻松地根据列(即特征)名字、包含的字符串或正则表达式进行数据筛选,非常适合于数据分析和数据清洗的过程。