Pandas DataFrame DataFrame.isin() Funktion

Jinku Hu 30 Januar 2023
  1. Syntax von pandas.DataFrame.isin(values)
  2. Beispiel-Codes: DataFrame.isin() Mit iterable als Eingabe
  3. Beispiel-Codes: DataFrame.isin() mit Dictionary als Eingabe
  4. Beispiel-Codes: DataFrame.isin() Mit Series als Eingabe
  5. Beispielcodes: DataFrame.isin() mit DataFrame als Eingabe
Pandas DataFrame DataFrame.isin() Funktion

Die Funktion pandas.DataFrame.isin(values) prüft, ob jedes Element im aufrufenden DataFrame den in den eingegebenen values angegebenen Wert enthält.

Syntax von pandas.DataFrame.isin(values)

DataFrame.isin(values)

Parameter

values iterable - list, tuple, set, usw.
Dictionary,
Series
Dataframe

Zurück

Es gibt einen DataFrame von Booleans der gleichen Dimension des aufrufenden DataFrame zurück, der anzeigt, ob jedes Element die eingegebenen values enthält.

Beispiel-Codes: DataFrame.isin() Mit iterable als Eingabe

Wenn die Python iterable die Eingabe ist, prüft Pandas DataFrame.isin() Funktion, ob jeder Wert im DataFrame irgendeinen Wert in der iterable enthält.

import pandas as pd

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

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

Der Aufrufer DataFrame ist:

   Sales  Profit
0    100     200
1    200     400

Ausgabe:

   Sales  Profit
0  False    True
1   True    True

Hier sind 200 und 400 in der Liste [200, 400] vorhanden, daher sind die Werte im zurückgegebenen DataFrame, deren ursprüngliche Werte 200 und 400 sind, True. 100 ist nicht in der Liste [200, 400], daher gibt der Wert an seiner Position False zurück.

Beispiel-Codes: DataFrame.isin() mit Dictionary als Eingabe

Wenn der Typ des Eingabewertes Dictionary ist, prüft die Funktion isin() nicht nur die Werte, sondern auch den key. Sie gibt nur dann True zurück, wenn der Spaltenname mit dem key übereinstimmt und der Zellwert im value des Dictionaries enthalten ist.

import pandas as pd

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

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

Ausgabe:

   Sales  Profit
0  False   False
1   True   False

Im ersten Beispiel sind die Werte der Profit-Spalten beide True, aber in diesem Beispiel sind sie False, weil der Spaltenname sich von dem key im EingabeDictionary unterscheidet.

Es gibt True in der Spalte Sales zurück, wenn der Wert im values des Dictionaries enthalten ist - [200, 400].

Beispiel-Codes: DataFrame.isin() Mit Series als Eingabe

Wenn der Typ des Eingabewertes Pandas Series ist, prüft die Funktion isin(), ob das Element pro Spalte mit dem Wert im gleichen Index der eingegebenen Series übereinstimmt.

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)

Ausgabe:

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

Die Elemente in der Spalte Profit sind elementweise die gleichen wie die Elemente in der Eingabespalte Series, daher gibt die Funktion für beide Elemente in dieser Spalte True zurück.

Beispielcodes: DataFrame.isin() mit DataFrame als Eingabe

Wenn der Typ des Eingabewertes Pandas DataFrame ist, prüft die Funktion isin() jedes Element im Aufrufer DataFrame auf Übereinstimmung mit dem Element der Eingabe DataFrame an der gleichen Position.

Sie gibt True zurück, wenn die Werte identisch sind, oder False im Falle einer Nichtübereinstimmung.

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)

Ausgabe:

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

Der Wert an der Position (1, 1) gibt False zurück, weil die Werte zwischen dem aufrufenden DataFrame und dem eingegebenen DataFrame unterschiedlich sind.

Warnung
Die Funktion isin() prüft nicht nur den Wert elementweise, sondern sie prüft auch, ob der Name der Spalte identisch ist. Sie gibt False zurück, wenn die Spaltennamen unterschiedlich sind, selbst wenn der Wert in diesen beiden DataFrames derselbe ist.
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Verwandter Artikel - Pandas DataFrame