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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert