📅  最后修改于: 2023-12-03 15:18:13.758000             🧑  作者: Mango
在 Pandas 中,我们经常需要筛选出满足条件的数据。其中一个常见的需求是筛选出某列中值精确等于给定值的行。
这个可以通过 ==
运算符完成,但需要注意的是使用 ==
的时候必须使用 ()
括号括起来。具体用法可以看下面的代码片段:
import pandas as pd
# 创建样例数据
data = {"name": ["Alice", "Bob", "Charlie"], "age": [20, 30, 25]}
df = pd.DataFrame(data)
# 筛选出 name 列中值等于 'Bob' 的行
result = df[df["name"] == "Bob"]
print(result)
输出结果为:
name age
1 Bob 30
在这个例子中,我们使用了 df["name"] == "Bob"
来判断哪些行中 name
列的值等于 Bob
。然后将这个布尔数组传递给 DataFrame 的 []
,就能得到满足条件的行。
需要注意的是,这个等于操作是精确等于操作,即只会匹配与给定值完全相同的项。如果需要模糊匹配的话,可以使用 Pandas 提供的字符串函数来处理。例如,如果要找到 name
列中包含 Bo
的行,可以使用 df["name"].str.contains("Bo")
来判断:
import pandas as pd
# 创建样例数据
data = {"name": ["Alice", "Bob", "Charlie"], "age": [20, 30, 25]}
df = pd.DataFrame(data)
# 筛选出 name 列中包含 'Bo' 的行
result = df[df["name"].str.contains("Bo")]
print(result)
输出结果为:
name age
1 Bob 30
在以上例子中,我们使用了 df["name"].str.contains("Bo")
来判断哪些行中 name
列的值包含 Bo
。然后将这个布尔数组传递给 DataFrame 的 []
,就能得到满足条件的行。
总结一下,我们可以使用 ==
操作符来进行精确等于的判断,使用 Pandas 字符串函数来进行模糊匹配的判断。无论是哪种方法,都需要使用布尔数组作为 DataFrame 的索引来进行筛选。
希望这篇文章能够帮助你解决 Pandas 中精确等于的问题,如果有任何疑问或建议欢迎在评论区留言。