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