在 pandas dataframe 中使用 isin() 函数
我们将在本教程中讨论如何使用 like sql in 和 not in 运算符来过滤 pandas dataframe。此外,我们还将通过各种示例向你展示如何使用 isin() 函数和一元运算符(~) 根据条件过滤单行/列、过滤多列、过滤 pandasdataframe .
使用 isin() 函数从 pandas 中的字典对象创建 dataframe
下面的示例 dataframe 包含列 student name、subject、semester、marks。导入 pandas 库并创建一个 dataframe。
import pandas as pd
student_record = {
"student name": ["samreena", "affan", "mirha", "asif"],
"subject": ["sda", "ethics", "web design", "web development"],
"semester": ["6th", "7th", "5th", "8th"],
"marks": [100, 90, 80, 70],
}
index_labels = [0, 1, 2, 3]
df = pd.dataframe(student_record, index=index_labels)
print(df)
输出:
student name subject semester marks
0 samreena sda 6th 100
1 affan ethics 7th 90
2 mirha web design 5th 80
3 asif web development 8th 70
使用 isin() 函数过滤 pandas dataframe
我们可以使用类似于 sql 中的 in 运算符的 isin() 方法过滤 pandas dataframe 行。
要过滤行,将检查单个列中的所需元素。使用 pd.series.isin() 函数,我们可以检查搜索元素是否存在于系列中。
如果元素将在系列中匹配,则返回 true,否则返回 false。
例如,我们希望在 subject 列中返回包含 web design 和 web development 主题的行。
import pandas as pd
student_record = {
"name": ["samreena", "affan", "mirha", "asif"],
"subject": ["sda", "ethics", "web design", "web development"],
"semester": ["6th", "7th", "5th", "8th"],
"marks": [100, 90, 80, 70],
}
index_labels = [0, 1, 2, 3]
dataframe = pd.dataframe(student_record, index=index_labels)
# find elements in a column to return rows
subjects_list = ["web design", "web development"]
dataframe1 = dataframe[dataframe.subject.isin(subjects_list)]
print(dataframe1)
输出:
name subject semester marks
2 mirha web design 5th 80
3 asif web development 8th 70
请注意,仅显示那些学生姓名 web development 和 web design 主题返回。
我们可以通过使用 pandas dataframe 行索引显示 true 和 false 来返回一个布尔数组。
import pandas as pd
student_record = {
"name": ["samreena", "affan", "mirha", "asif"],
"subject": ["sda", "ethics", "web design", "web development"],
"semester": ["6th", "7th", "5th", "8th"],
"marks": [100, 90, 80, 70],
}
index_labels = [0, 1, 2, 3]
dataframe = pd.dataframe(student_record, index=index_labels)
subjects_list = ["web design", "web development"]
dataframe1 = dataframe.subject.isin(subjects_list)
print(dataframe1)
输出:
0 false
1 false
2 true
3 true
name: subject, dtype: bool
使用 isin() 方法过滤 pandas dataframe 中的多个列
我们还可以使用 isin() 方法对多个列应用过滤器。例如,我们想要检索所有具有 sda 主题或第五学期的行。
import pandas as pd
student_record = {
"name": ["samreena", "affan", "mirha", "asif"],
"subject": ["sda", "ethics", "web design", "web development"],
"semester": ["6th", "7th", "5th", "8th"],
"marks": [100, 90, 80, 70],
}
index_labels = [0, 1, 2, 3]
dataframe = pd.dataframe(student_record, index=index_labels)
dataframe1 = dataframe[
dataframe[["subject", "semester"]].isin(["sda", "7th"]).any(axis=1)
]
print(dataframe1)
输出:
name subject semester marks
0 samreena sda 6th 100
1 affan ethics 7th 90
使用带有 not (~) 匹配条件的 isin() 方法来过滤 pandas dataframe
isin() 方法的行为类似于 sql 中的 in 运算符。我们将使用一元运算符 (~) 来实现 not in 运算符。
例如,我们只想显示那些不包含 web design 和 ethics 主题的行。
import pandas as pd
student_record = {
"name": ["samreena", "affan", "mirha", "asif"],
"subject": ["sda", "ethics", "web design", "web development"],
"semester": ["6th", "7th", "5th", "8th"],
"marks": [100, 90, 80, 70],
}
index_labels = [0, 1, 2, 3]
dataframe = pd.dataframe(student_record, index=index_labels)
subjects_list = ["web design", "ethics"]
# applying not operator
dataframe1 = dataframe[~dataframe.subject.isin(subjects_list)]
print(dataframe1)
输出:
name subject semester marks
0 samreena sda 6th 100
3 asif web development 8th 70
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
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 系列日期时间转换为字符串

