Pandas DataFrame 过滤方法

Beginner

介绍

在本实验中,我们将学习如何在 Pandas DataFrame 中使用 filter() 方法。filter() 方法允许我们根据指定的索引标签对 DataFrame 的行或列进行子集筛选。需要注意的是,此方法基于索引的标签来筛选 DataFrame,而不是基于 DataFrame 的内容。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到 Notebook 标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时可以向 Labby 寻求帮助。实验结束后请提供反馈,我们将及时为你解决问题。

创建一个 DataFrame

首先,让我们创建一个示例 DataFrame 以便后续操作。

#import 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"])

#printing DataFrame
print("-------DataFrame is----------")
print(df)

使用 filter() 方法按列名筛选

我们可以使用 filter() 方法的 items 参数来按特定列筛选 DataFrame。

#filter by column names
filtered_df = df.filter(items=["Name","Education"])

#printing filtered DataFrame
print("---------Filtered DataFrame---------")
print(filtered_df)

使用 filter() 方法按行名筛选

我们可以使用 filter() 方法的 like 参数来按特定行筛选 DataFrame。

#filter by row names
filtered_df = df.filter(like='Group_2', axis=0)

#printing filtered DataFrame
print("---------Filtered DataFrame---------")
print(filtered_df)

使用 regex 参数按列名筛选

我们可以使用 filter() 方法的 regex 参数,基于正则表达式按特定列筛选 DataFrame。

#filter by column names with regex
filtered_df = df.filter(regex ='[g]')

#printing filtered DataFrame
print("---------Filtered DataFrame---------")
print(filtered_df)

总结

在本实验中,我们学习了如何在 Pandas DataFrame 中使用 filter() 方法。我们涵盖了如何按列名和行名筛选 DataFrame,以及如何基于正则表达式进行筛选。此方法对于根据特定索引标签对 DataFrame 进行子集化非常有用。