Pandas: so füllen sie nan-werte mithilfe eines wörterbuchs
Sie können die Funktion fillna() mit einem Wörterbuch verwenden, um NaN-Werte in einer Spalte eines Pandas-DataFrames basierend auf Werten in einer anderen Spalte zu ersetzen.
Dazu können Sie die folgende grundlegende Syntax verwenden:
#define dictionary dict = {' A ': 5 , ' B ': 10 , ' C ': 15 , ' D ': 20 } #replace values in col2 based on dictionary values in col1 df[' col2 '] = df[' col2 ']. fillna (df[' col1 ']. map (dict))
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Füllen Sie NaN-Werte mithilfe eines Wörterbuchs in Pandas aus
Nehmen wir an, wir haben den folgenden Pandas-DataFrame, der Informationen über Verkäufe in verschiedenen Einzelhandelsgeschäften enthält:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' store ': ['A', 'A', 'B', 'C', 'D', 'C', 'B', 'D'], ' sales ': [12, np.nan, 30, np.nan, 24, np.nan, np.nan, 13]}) #view DataFrame print (df) blind sales 0 to 12.0 1 A NaN 2 B 30.0 3 C NaN 4 D 24.0 5CNaN 6BNaN 7 D 13.0
Beachten Sie, dass die Spalte „Umsätze“ mehrere NaN-Werte enthält.
Nehmen wir an, wir möchten diese NaNs in der Verkaufsspalte mit Werten füllen, die bestimmten Werten in der Store- Spalte entsprechen.
Wir können dazu die folgende Syntax verwenden:
#define dictionary dict = {' A ': 5 , ' B ': 10 , ' C ': 15 , ' D ': 20 } #replace values in sales column based on dictionary values in store column df[' sales '] = df[' sales ']. fillna (df[' store ']. map (dict)) #view updated DataFrame print (df) blind sales 0 to 12.0 1 A 5.0 2 B 30.0 3C 15.0 4 D 24.0 5C 15.0 6 B 10.0 7 D 13.0
Wir haben ein Wörterbuch verwendet, um die folgenden Ersetzungen in der Verkaufsspalte vorzunehmen:
- Wenn das Geschäft A ist, ersetzen Sie NaN in Sales durch den Wert 5 .
- Wenn es sich bei dem Geschäft um B handelt, ersetzen Sie NaN in sales durch den Wert 10 .
- Wenn Store C ist, ersetzen Sie NaN in sales durch den Wert 15 .
- Wenn das Geschäft D ist, ersetzen Sie NaN in sales durch den Wert 20 .
Die vollständige Online-Dokumentation zur Funktion fillna() finden Sie hier .
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:
So zählen Sie fehlende Werte in Pandas
So löschen Sie Zeilen mit NaN-Werten in Pandas
So löschen Sie Zeilen, die einen bestimmten Wert in Pandas enthalten