在 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 系列日期时间转换为字符串