Pandas pd.isna()-Funktion

Python math 模块Pandas Häufige Funktionen


pd.isna()ist die am häufigsten verwendete Funktion zur Erkennung fehlender Werte in Pandas. Sie prüft, ob jedes Element ein fehlender Wert ist, und gibt einen booleschen Wert zurück (TrueoderFalse) Struktur.

In der Datenanalyse ist der Umgang mit fehlenden Werten ein sehr wichtiger erster Schritt.pd.isna()Es kann Ihnen helfen, fehlende Stellen in Daten schnell zu erkennen und eine Grundlage für nachfolgendes Füllen, Löschen oder andere Verarbeitungsvorgänge zu bieten.


Grundlegende Syntax und Parameter

Syntaxformat

pandas.isna(obj)

Parameterbeschreibung

ParameterTypeBeschreibung
objDataFrame, Series, Skalar, Liste, TupelDas Objekt, für das fehlende Werte geprüft werden müssen; es kann jeder unterstützte Datentyp sein.

Beschreibung des Rückgabewerts

  • Gibt ein Boolean-Objekt mit derselben Struktur wie die Eingabe zurück:
  • Wenn die Eingabe ein DataFrame ist, wird ein Boolean-DataFrame zurückgegeben
  • Wenn die Eingabe eine Series ist, wird eine Boolean-Series zurückgegeben
  • Wenn die Eingabe ein einzelner Wert ist, wird ein Boolean-Skalar zurückgegeben

Beispiel

Lassen Sie uns anhand einer Reihe von Beispielen von einfach bis komplexpd.isna()seine Verwendung gründlich beherrschen.

Beispiel 1: Erkennen fehlender Werte in einer Series

Beispiel

import pandas as pd
import numpy as np

# Eine Series mit fehlenden Werten erstellen
s = pd.Series([1, 2, np.nan, 4, None, 6])

# Fehlende Werte erkennen
result = pd.isna(s)
print("Originalreihe:")
print(s)
print("\n"Erkennungsergebnis:")
print(result)

Ausgabe:

原始 Series:
0    1.0
1    2.0
2    NaN
3    4.0
4    NaN
5    6.0
dtype: float64

检测结果:
0    False
1    False
2     True
3    False
4     True
5    False
dtype: bool

Code-Erklärung:

  1. np.nanundNonewerden alle als fehlende Werte erkannt
  2. In der zurückgegebenen Boolean-Series sind die Positionen fehlender WerteTrue, Positionen von nicht fehlenden Werten sindFalse

Beispiel 2: Erkennen fehlender Werte in DataFrame

Beispiel

import pandas as pd
import numpy as np

# DataFrame mit fehlenden Werten erstellen
df = pd.DataFrame({
    'A': [1, 2, np.nan, 4],
    'B': ['a', Keine, 'c', 'd'],
    'C': [pd.NaT, 6, 7, 8]  # NaT ist ein fehlender Wert für den Zeittyp
})

# Fehlende Werte erkennen
result = pd.isna(df)
print("Ursprüngliches DataFrame:")
print(df)
print("\n"Erkennungsergebnis:")
print(result)

Ausgabe:

原始 DataFrame:
     A    B     C
0  1.0    a  None
1  2.0  None     6
2  NaN   c     7
3  4.0    d     8
dtype: object

检测结果:
       A      B      C
0  False  False   True
1  False   True  False
2   True  False  False
3  False  False  False

Code-Erklärung:

  • pd.NaT(Not a Time) ist ein fehlender Wert des Zeittyps und wird ebenfalls korrekt erkannt
  • Jede Position im DataFrame gibt den entsprechenden booleschen Wert zurück

Beispiel 3: Fehlende Werte zählen

In der tatsächlichen Datenanalyse müssen wir oft wissen, wie viele fehlende Werte vorhanden sind.

Beispiel

import pandas as pd
import numpy as np

# Daten erstellen
df = pd.DataFrame({
    'A': [1, np.nan, 3, np.nan, 5],
    'B': [np.nan, 2, np.nan, 4, np.nan],
    'C': [1, 2, 3, 4, 5]
})

# Fehlende Werte in jeder Spalte zählen
print("Anzahl fehlender Werte pro Spalte:")
print(pd.isna(df).sum())

print("\n"Fehlende Werte insgesamt:", pd.isna(df).sum().sum())

# Anteil fehlender Werte berechnen
print("\n"Anteil fehlender Werte:")
print((pd.isna(df).sum() / len(df) * 100).round(2), "%")

Ausgabe:

每列缺失值数量:
A    2
B    3
C    0
dtype: int64

总缺失值数量: 5

缺失值比例:
A    40.0
B    60.0
C     0.0
%

Beispiel 4: Kombination mit anderen Funktionen

Beispiel

import pandas as pd
import numpy as np

# Daten erstellen
df = pd.DataFrame({
    'name': ['Alice', 'Bob', None, 'Diana', 'Eve'],
    'age': [25, None, 35, 28, None],
    'score': [85, 90, 78, 92, 88]
})

# isna verwenden, um Zeilen mit fehlenden Werten zu filtern
rows_with_na = df[pd.isna(df).any(axis=1)]
print("Zeilen mit fehlenden Werten:")
print(rows_with_na)

# isna verwenden, um fehlende Werte zu füllen
df_filled = df.fillna({
    'name': 'Unbekannt',
    'age': df['age'].mean(),  # Fülle age mit Mittelwert
    'score': 0
})
print("\n"DataFrame nach dem Füllen:")
print(df_filled)

Ausgabe:

包含缺失值的行:
   name   age  score
0  Alice  25.0     85
2  None  35.0     78
3  Diana  28.0     92

填充后的 DataFrame:
     name   age  score
0    Alice  25.0     85
1      Bob  29.0     90
2  Unknown  35.0     78
3    Diana  28.0     92
4      Eve   0.0     88

Wichtige Hinweise

Wichtige Tipps:pd.isna()Die folgenden Werte werden als fehlende Werte erkannt:

  • np.nan- Fehlende Werte vom numerischen Typ
  • None- Python-natives None-Objekt
  • pd.NaT- Fehlende Werte vom datetime-Typ

Für leere Strings""oder0,pd.isna()gibt zurückFalse, weil sie keine fehlenden Werte sind.


Python math 模块Pandas Häufige Funktionen

Weitere Erweiterungen