在 Pandas DataFrame 中过滤数据
本教程将演示基于单个或多个条件过滤 Pandas DataFrame 中的数据。
布尔索引意味着选择数据子集或根据某些条件过滤数据。我们处理 DataFrame 中数据的实际值,而不是它们的行或列标签或整数位置。
布尔向量用于过滤布尔索引中的数据。括号可用于对涉及运算符的多个条件进行分组,例如|
(OR
)、&
(AND
)、==
(EQUAL
) 和 ~
(NOT
)。
基于单一条件过滤 Pandas DataFrame 中的数据
我们可以通过应用单个条件来使用单个列的值过滤数据。
在下面的代码中,我们有学生的数据,我们通过将单个条件应用于 Department
值来过滤记录。只有那些系为 CS
的学生的记录才会显示。
示例代码:
# Python 3.x
import pandas as pd
df = pd.read_csv("Student.csv")
display(df)
df_filtered = df[(df["Department"] == "CS")]
display(df_filtered)
输出:
根据多个条件过滤 Pandas DataFrame 中的数据
在某些情况下,我们还可以应用多个条件从单个列中选择数据。
如果我们只想显示那些分数大于 60 但小于 90 的学生的记录,我们将使用由 &
运算符连接的多个条件。
要记住的重要一点是分别使用运算符&
、|
、~
而不是 AND
、OR
、NOT
。
示例代码:
# Python 3.x
import pandas as pd
df = pd.read_csv("Student.csv")
display(df)
df_filtered = df[(df["Marks"] > 60) & (df["Marks"] < 90)]
display(df_filtered)
输出:
根据多列值过滤 Pandas DataFrame 中的数据
我们还可以使用基于多列值的条件过滤数据。
在下面的代码中,我们过滤了记录,只显示部门为 EE
且标记高于或等于 80 的记录。我们使用括号对多个条件进行分组。
每当我们过滤来自多个列的数据时,我们总是应用多个条件。
示例代码:
# Python 3.x
import pandas as pd
df = pd.read_csv("Student.csv")
display(df)
df_filtered = df[(df["Department"] == "EE") & (df["Marks"] >= 80)]
display(df_filtered)
输出:
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串