Pandas Series.str.contains() Funktion

Pandas 常用函数Häufig verwendete Pandas-Funktionen


Series.str.contains()ist eine Funktion in Pandas, mit der überprüft wird, ob eine Zeichenfolge eine angegebene Teilzeichenfolge enthält.

Bei der Datenverarbeitung müssen wir häufig Daten basierend auf Textinhalten filtern, z. B. Datensätze finden, die bestimmte Schlüsselwörter enthalten, oder Text herausfiltern, der einem bestimmten Muster entspricht.contains()Die Funktion kann überprüfen, ob jedes String-Element eine angegebene Teilzeichenfolge oder ein Muster eines regulären Ausdrucks enthält.

Wortbedeutung:containsbedeutet „enthalten“ und gibt an, ob die Zeichenfolge den angegebenen Inhalt enthält.


Grundlegende Syntax und Parameter

str.contains()ist die String-Accessor-Methode von Series. Sie müssen also zuerst eine Series haben, die Zeichenfolgen enthält, und dann den.strAccessor verwenden, um sie aufzurufen.

Syntaxformat

Series.str.contains(pat, case=True, regex=True, na=None)

Parameterbeschreibung

Parameter Type Erforderlich Beschreibung Standardwert
pat str Erforderlich Das Suchmuster, das eine gewöhnliche Zeichenfolge oder ein regulärer Ausdruck sein kann. -
case bool Optional Ob Groß- und Kleinschreibung unterschieden werden soll. Standardwert ist True (Groß-/Kleinschreibung wird unterschieden). True
regex bool Optional Gibt an, ob der Parameter pat als regulärer Ausdruck behandelt werden soll. Standardwert ist True. True
na Objekt Optional Der zurückzugebende Wert, wenn das Element NaN ist. Standardwert ist None (gibt NaN zurück). Keine

Funktionsbeschreibung

  • Rückgabewert: gibt eine boolesche Series zurück, die angibt, ob jedes Element das angegebene Muster enthält.
  • Wirkung: prüft jedes String-Element in der Series und gibt True oder False zurück.
  • Hinweis: verwendet standardmäßig den Abgleich mit regulären Ausdrücken, wodurch komplexere Muster abgeglichen werden können.

Beispiele

Lass uns durch eine Reihe von Beispielen von einfach bis komplex gründlich meistern,str.contains()die Verwendung davon gründlich meistern.

Beispiel 1: Grundlegende Verwendung – Prüfen, ob eine Teilzeichenkette enthalten ist

Beispiel

import pandas as pd

# Eine Series mit Text erstellen
s = pd.Series(['apple', 'banana', 'grape', 'pineapple', 'orange'])

# Prüfen, ob 'ap' enthalten ist
result = s.str.contains('ap')

print("Originalreihe:")
print(s)
print("nEnthält 'ap':")
print(result)

Ausgabeergebnis:

原始 Series:
0       apple
1      banana
2       grape
3    pineapple
4      orange
dtype: object

是否包含 'ap':
0       True
1      False
2       True
3       True
4      False

Code-Erklärung:

  1. s.str.contains('ap')Prüfe, ob jede Zeichenkette die Teilzeichenkette 'ap' enthält.
  2. 'apple' enthält 'ap', gibt True zurück.
  3. 'banana' enthält 'ap' nicht, gibt False zurück.
  4. 'grape' enthält 'ap', gibt True zurück.
  5. 'pineapple' enthält 'ap', gibt True zurück.

Beispiel 2: Abgleich mit regulärem Ausdruck

contains()Standardmäßig werden reguläre Ausdrücke verwendet, die komplexere Muster abgleichen können.

Beispiel

import pandas as pd

# Eine Series mit Text erstellen
s = pd.Series(['hello123', 'world456', 'example789', 'python', 'test123'])

# Verwende einen regulären Ausdruck, um Zeichenketten abzugleichen, die mit einem Buchstaben beginnen und auf die Ziffern folgen
result = s.str.contains(r'^[a-zA-Z]+d+$')

print("Originalreihe:")
print(s)
print("nÜbereinstimmung mit dem Muster, das mit einem Buchstaben beginnt und mit einer Ziffer endet:")
print(result)

Ausgabeergebnis:

原始 Series:
0      hello123
1      world456
2     example789
3       python
4      test123
dtype: object

匹配字母开头+数字结尾的模式:
0       True
1       True
2       True
3      False
4       True

Code-Erklärung:

  • r'^[a-zA-Z]+d+$'Es ist ein regulärer Ausdruck, der mit Zeichenketten übereinstimmt, die mit einem Buchstaben beginnen und mit einer Ziffer enden.
  • ^kennzeichnet den Anfang der Zeichenkette,$kennzeichnet das Ende der Zeichenkette.
  • 'python' enthält keine Ziffern, daher stimmt es nicht überein.

Beispiel 3: Übereinstimmung ohne Beachtung der Groß-/Kleinschreibung

Durch Festlegencase=Falseeine Übereinstimmung ohne Beachtung der Groß-/Kleinschreibung kann erreicht werden.

Beispiel

import pandas as pd

# Erstelle eine Series mit Text in unterschiedlicher Groß-/Kleinschreibung
s = pd.Series(['Apple', 'APPLE', 'apple', 'Banana', 'APPLE'])

# Übereinstimmung mit Beachtung der Groß-/Kleinschreibung
result_case = s.str.contains('APPLE')
# Übereinstimmung ohne Beachtung der Groß-/Kleinschreibung
result_nocase = s.str.contains('APPLE', case=False)

print("Originalreihe:")
print(s)
print("nGroß-/Kleinschreibung beachtende Übereinstimmung 'APPLE':")
print(result_case)
print("nÜbereinstimmung ohne Beachtung der Groß-/Kleinschreibung 'APPLE':")
print(result_nocase)

Ausgabeergebnis:

原始 Series:
0      Apple
1     APPLE
2     apple
3     Banana
4     APPLE
dtype: object

区分大小写匹配 'APPLE':
0      False
1       True
2      False
3      False
4       True

不区分大小写匹配 'APPLE':
0       True
1       True
2       True
3      False
4       True

Code-Erklärung:

  • case=True(Standard) Groß-/Kleinschreibung beachtend, stimmt nur exakt mit 'APPLE' überein.
  • case=FalseOhne Beachtung der Groß-/Kleinschreibung stimmen 'Apple', 'APPLE' und 'apple' alle überein.

Beispiel 4: Umgang mit fehlenden Werten

DurchnaMit dem Parameter können Sie angeben, wie NaN-Werte behandelt werden.

Beispiel

import pandas as pd
import numpy as np

# Erstelle eine Series mit NaN-Werten
s = pd.Series(['apple', 'banana', np.nan, 'grape', None])

# Standardbehandlung von NaN (gibt NaN zurück)
result_default = s.str.contains('ap')
# Angeben, dass NaN False zurückgibt
result_na_false = s.str.contains('ap', na=False)

print("Originalreihe:")
print(s)
print("nStandardbehandlung (gibt NaN zurück):")
print(result_default)
print("nNaN als False behandeln:")
print(result_na_false)

Ausgabeergebnis:

原始 Series:
0       apple
1      banana
2        NaN
3       grape
4       None
dtype: object

默认处理(返回 NaN):
0       True
1      False
2        NaN
3       True
4        NaN

将 NaN 视为 False:
0       True
1      False
2      False
3       True
4      False

Code-Erklärung:

  • Standardmäßig geben NaN und None NaN zurück.
  • Einstellungna=Falsekann NaN als nicht übereinstimmend behandeln.
  • In der tatsächlichen Datenverarbeitung ist dies nützlich und kann Filterprobleme vermeiden, die durch NaN verursacht werden.

Beispiel 5: Filtern von Daten

contains()Es wird oft mit boolescher Indizierung kombiniert, um Daten zu filtern.

Beispiel

import pandas as pd

# Simulierte Produktdaten-Series erstellen
products = pd.Series([
    'iPhone 14 Pro',
    'Samsung Galaxy S23',
    'iPhone 13',
    'Google Pixel 7',
    'iPad Pro',
    'MacBook Air',
    'Dell XPS 15'
])

# Produkte filtern, die 'iPhone' enthalten
iphone_products = products[products.str.contains('iPhone')]

# Produkte filtern, die 'i' nicht enthalten (Groß-/Kleinschreibung beachten)
no_i_products = products[~products.str.contains('i')]

print("Alle Produkte:")
print(products)
print("nProdukte, die 'iPhone' enthalten:")
print("nProdukte, die kein großes 'I' enthalten:")
print(no_i_products)
print(no_i_products)

Ausgabeergebnis:

所有产品:
0       iPhone 14 Pro
1    Samsung Galaxy S23
2          iPhone 13
3    Google Pixel 7
4          iPad Pro
5      MacBook Air
6        Dell XPS 15
dtype: object

包含 'iPhone' 的产品:
0    iPhone 14 Pro
2          iPhone 13
dtype: object

不包含大写 'I' 的产品:
6    Dell XPS 15

Code-Erklärung:

  • products[products.str.contains('iPhone')]Produkte herausfiltern, die 'iPhone' enthalten.
  • ~products.str.contains('i')Verwenden Sie~Negation, um Produkte herauszufiltern, die 'i' nicht enthalten.
  • Dies ist eine häufige Operation bei der Datenfilterung.

Hinweise

  • str.contains()Standardmäßig werden reguläre Ausdrücke verwendet (regex=True)。
  • Wenn Sie gewöhnliche Zeichenketten abgleichen müssen (nicht als reguläre Ausdrücke), können Sieregex=False。
  • Standardmäßig wird zwischen Groß- und Kleinschreibung unterschieden; verwenden Siecase=Falseum es case-insensitive zu machen.
  • Standardmäßig geben NaN-Werte NaN zurück; verwenden SienaParameter, um den Rückgabewert anzugeben.
  • Diese Funktion gibt eine boolesche Series zurück, die direkt für boolesche Indizierung verwendet werden kann, um Daten zu filtern.

Pandas 常用函数Häufig verwendete Pandas-Funktionen

Andere Erweiterungen