📜  Python| Pandas DataFrame.isin()(1)

📅  最后修改于: 2023-12-03 15:04:21.628000             🧑  作者: Mango

Python | Pandas DataFrame.isin()

DataFrame.isin() 方法用于测试 DataFrame 中的每个元素是否包含在指定集合中。它返回的是一个元素为布尔值的 DataFrame,其中 True 表示相应的元素在指定集合中,False 表示没有。

语法
DataFrame.isin(values)
参数
  • values:可以是单个元素、列表、元组、Series 或 DataFrame。

    • 如果是单个元素,则返回一个 DataFrame,其中每个元素都是单个值和 values 相等的 bool 类型。

    • 如果是列表、元组或 Series,则将其当作列集合,并测试每列的元素是否包含在 values 中。

    • 如果是 DataFrame,则在 values 中查找 DataFrame 的每个列,并返回具有相同形状的 DataFrame。

返回值

返回一个布尔值 DataFrame,其中元素为 True 表示与 values 匹配,False 表示不匹配。

示例
测试单个元素是否在 DataFrame 中
import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df.isin([2]))

输出:

       A      B
0  False  False
1   True  False
2  False  False

从上面的输出可以看到,因为 2 只在 DataFrame 的第二行中出现,所以只有第二行的值为 True。

测试列表是否在 DataFrame 中
import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df.isin([1, 2]))

输出:

      A      B
0  True  False
1  True  False
2  False  False

上面的输出显示,1 和 2 出现在了 DataFrame 的第一和第二行,所以第一列和第二列的第一和第二行的值为 True。

测试元组是否在 DataFrame 中
import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df.isin([(1, 4), (2, 5)]))

输出:

       A      B
0   True   True
1  False  False
2  False  False

上面的输出显示,(1, 4) 和 (2, 5) 出现在了 DataFrame 的第一行和第二行的第一列和第二列上,因此输出的结果也相应为 True。

测试 DataFrame 是否在 DataFrame 中
import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [1, 2], 'B': [4, 5]})
print(df.isin(df2))

输出:

       A      B
0   True   True
1   True   True
2  False  False

上面的输出显示,df2 的数据出现在 df 的前两行。因此,第一列和第二列的前两行的值为 True。第三行的 False 值是与 df2 没有匹配的行。