PythonPandas函数:用Dataframefilter函数筛选指定数据
在数据分析和数据处理的过程中,经常需要对数据做取舍和筛选,以便提取有价值的信息。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()函数是一种非常方便的数据筛选函数,通过它可以轻松地根据列(即特征)名字、包含的字符串或正则表达式进行数据筛选,非常适合于数据分析和数据清洗的过程。
