Pandas 数据帧filter()
方法
原文:https://www.studytonight.com/pandas/pandas-dataframe-filter-method
在本教程中,我们将学习 PandasDataFrame.filter()
T3】法。此方法根据指定的索引标签对数据帧行或列进行子集化。请注意,该例程不会对数据帧的内容进行过滤。筛选器应用于索引的标签。
下图显示了DataFrame.filter()
方法的语法。
句法
DataFrame.filter(items=None, like=None, regex=None, axis=None)
因素
物品:列表状。保持标签远离项目中的轴。
像: str。将标签与“标签中的相似性==真”的轴分开。
正则表达式: str(正则表达式)。从要重新搜索的轴保留标签(正则表达式,标签)=真。
轴 {0 或‘索引’,1 或‘列’,无},默认无。要筛选的轴,表示为索引(int)或轴名(str)。默认情况下,这是信息轴,“系列”的“索引”,数据帧的“列”。
示例:在 Pandas 中创建数据帧
在本教程中,我们将使用这个数据帧来应用过滤方法。
#importing pandas as pd
import pandas as pd
#creating DataFrame
df=pd.DataFrame({"Name":["Navya","Vindya","Sinchana","Amrutha","Akshatha"],"Age":[25,24,25,25,26],"Education":["M.Tech","M.Tech","M.Tech","Ph.d","Ph.d"],"YOP":[2019,2020,2018,None,None]},index=["Group_1", "Group_1","Group_1","Group_2","Group_2"])
print("-------DataFrame is----------")
print(df)
一旦我们运行该程序,我们将获得以下输出。
- DataFrame is - 姓名年龄教育 YOP 组 1 Navya 25 M.Tech 2019.0 组 _1 Vindya 24 M.Tech 2020.0 组 _1 Sinchana 25 M.Tech 2018.0 组 2 Amrutha 25 博士 NaN 组 _2 Akshatha 26 博士 NaN
示例:使用DataFrame.filter()
方法按列名过滤
使用DataFrame.filter()
方法的items
参数,我们可以按特定的列过滤数据帧。下面的例子显示了同样的情况。
#importing pandas as pd
import pandas as pd
#creating DataFrame
df=pd.DataFrame({"Name":["Navya","Vindya","Sinchana","Amrutha","Akshatha"],"Age":[25,24,25,25,26],"Education":["M.Tech","M.Tech","M.Tech","Ph.d","Ph.d"],"YOP":[2019,2020,2018,None,None]},index=["Group_1", "Group_1","Group_1","Group_2","Group_2"])
print("---------Filter by columns name---------")
print(df.filter(items=["Name","Education"]))
一旦我们运行该程序,我们将获得以下输出。
-按名称按列筛选- 名称教育 第 _1 组纳维雅科技 第 _1 组温迪雅科技 第 _1 组辛查纳科技 第 _2 组阿姆鲁萨博士 第 _2 组阿克沙塔博士
示例:使用DataFrame.filter()
方法按行名过滤
通过使用DataFrame.filter()
方法的like
参数,我们可以按特定行过滤数据帧。下面的例子显示了同样的情况。
#importing pandas as pd
import pandas as pd
#creating DataFrame
df=pd.DataFrame({"Name":["Navya","Vindya","Sinchana","Amrutha","Akshatha"],"Age":[25,24,25,25,26],"Education":["M.Tech","M.Tech","M.Tech","Ph.d","Ph.d"],"YOP":[2019,2020,2018,None,None]},index=["Group_1", "Group_1","Group_1","Group_2","Group_2"])
print("---------Filter by rows name---------")
print(df.filter(like='Group_2', axis=0))
一旦我们运行该程序,我们将获得以下输出。
-按行筛选名称- 姓名年龄教育 YOP 组 _2 阿姆鲁萨 25 博士 NaN 组 _2 阿克沙塔 26 博士 NaN
示例:使用regex
和DataFrame.filter()
方法按列名过滤
通过使用DataFrame.filter()
方法的 regex 参数,我们可以按特定的列过滤数据帧。下面的例子显示了同样的情况。
#importing pandas as pd
import pandas as pd
#creating DataFrame
df=pd.DataFrame({"Name":["Navya","Vindya","Sinchana","Amrutha","Akshatha"],"Age":[25,24,25,25,26],"Education":["M.Tech","M.Tech","M.Tech","Ph.d","Ph.d"],"YOP":[2019,2020,2018,None,None]},index=["Group_1", "Group_1","Group_1","Group_2","Group_2"])
print("---------Filter by columns name---------")
print(df.filter(regex ='[g]'))
一旦我们运行该程序,我们将获得以下输出。
-按列名筛选- 年龄 组 _1 25 组 _1 24 组 _1 25 组 _2 25 组 _2 26
结论
在本教程中,我们学习了 PandasDataFrame.filter()
方法。我们学习了语法、参数,并通过在 DataFrame 上应用此方法。