Pandas DataFrame DataFrame.isin() 函数

Jinku Hu 2023年1月30日 Pandas Pandas DataFrame
  1. pandas.DataFrame.isin(values) 语法
  2. 示例代码:DataFrame.isin()Iterable 为输入
  3. 示例代码:DataFrame.isin() 以字典为输入
  4. 示例代码:DataFrame.isin()Series 为输入
  5. 示例代码:DataFrame.isin()DataFrame 为输入
Pandas DataFrame DataFrame.isin() 函数

pandas.DataFrame.isin(values) 函数检查调用者 DataFrame 中的每个元素是否包含输入的 values 中指定的值。

pandas.DataFrame.isin(values) 语法

DataFrame.isin(values)

参数

values iterable-list, tuple, set 等。
字典
Series
DataFrame

返回值

它返回一个与调用者 DataFrame 相同维度的布尔值的 DataFrame,表示每个元素是否包含输入的 values

示例代码:DataFrame.isin()Iterable 为输入

当 Python iterable 为输入时,Pandas DataFrame.isin() 函数检查 DataFrame 中的每个值是否包含 iterable 中的任何值。

import pandas as pd

df = pd.DataFrame({'Sales': [100, 200], 'Profit': [200, 400]})

df = df.isin([200, 400])
print(df)

调用者 DataFrame

   Sales  Profit
0    100     200
1    200     400

输出:

   Sales  Profit
0  False    True
1   True    True

这里,200 和 400 存在于列表 [200,400] 中,因此,在返回的 DataFrame 中,原值为 200 和 400 的值为 True100 不在列表 [200,400] 中,因此,其位置的值返回 False

示例代码:DataFrame.isin() 以字典为输入

如果输入值类型是字典,isin() 函数不仅检查值,而且检查键值。只有当列名与键相同,且单元格值包含在字典的 value 中时,它才返回 True

import pandas as pd

df = pd.DataFrame({"Sales": [100, 200], "Profit": [200, 400]})

df = df.isin({"Sales": [200, 400]})
print(df)

输出:

   Sales  Profit
0  False   False
1   True   False

在第一个例子中,Profit 列的值都是 True,但在这个例子中是 False,因为列名与输入字典中的键不同。

如果值包含在字典的值中–[200,400],它将返回 Sales 列中的 True

示例代码:DataFrame.isin()Series 为输入

如果输入值类型是 Pandas 的 Seriesisin() 函数检查每列元素是否与输入的 Series 的同一索引中的值相同。

import pandas as pd

df = pd.DataFrame({"Sales": [100, 200], "Profit": [200, 400]})

valueSeries = pd.Series([200, 400])
print(valueSeries)

df = df.isin(valueSeries)
print(df)

输出:

0    200
1    400
dtype: int64
   Sales  Profit
0  False    True
1  False    True

Profit 列中的元素与输入的 Series 中的元素元素相同,因此,该列中的两个元素都返回 True

示例代码:DataFrame.isin()DataFrame 为输入

如果输入值类型是 Pandas 的 DataFrame.isin() 函数检查调用者 DataFrame 中的每个元素是否与输入 DataFrame 中相同位置的元素相同。

当数值相同时返回 True,如果不匹配则返回 False

import pandas as pd

df = pd.DataFrame({"Sales": [100, 200], "Profit": [200, 400]})
print(df)

valueDf = pd.DataFrame({"Sales": [100, 200], "Profit": [200, 300]})
print(valueDf)

df = df.isin(valueDf)
print(df)

输出:

   Sales  Profit
0    100     200
1    200     400
   Sales  Profit
0    100     200
1    200     300
   Sales  Profit
0   True    True
1   True   False

位置 (1, 1) 的值返回 False,因为调用者 DataFrame 和输入 DataFrame 的值不同。

警告
isin() 函数不仅从元素上检查值,而且还检查列名是否相同。如果列名不同,即使这两个 DataFrames 中的值相同,它也返回 False
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 创始人。Jinku 在机器人和汽车行业工作了8多年。他在自动测试、远程测试及从耐久性测试中创建报告时磨练了自己的编程技能。他拥有电气/电子工程背景,但他也扩展了自己的兴趣到嵌入式电子、嵌入式编程以及前端和后端编程。

LinkedIn Facebook

相关文章 - Pandas DataFrame