Pandy: jak wypełnić wartości nan za pomocą słownika


Możesz użyć funkcji fillna() ze słownikiem, aby zastąpić wartości NaN w jednej kolumnie pandy DataFrame na podstawie wartości z innej kolumny.

Aby to zrobić, możesz użyć następującej podstawowej składni:

 #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))

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Wypełnij wartości NaN w Pandach za pomocą słownika

Załóżmy, że mamy następującą ramkę DataFrame pand, która zawiera informacje o sprzedaży dokonanej w różnych sklepach detalicznych:

 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

Pamiętaj, że w kolumnie Sprzedaż znajduje się wiele wartości NaN.

Załóżmy, że chcemy zapełnić te NaN w kolumnie sprzedaży wartościami odpowiadającymi konkretnym wartościom w kolumnie sklepu .

W tym celu możemy użyć następującej składni:

 #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

Użyliśmy słownika, aby dokonać następujących zamian w kolumnie sprzedaży:

  • Jeśli sklep to A , zamień NaN w Sales na wartość 5 .
  • Jeśli sklepem jest B , zamień NaN w sprzedaży na wartość 10 .
  • Jeśli sklep to C , zamień NaN w sprzedaży na wartość 15 .
  • Jeśli sklep to D , zamień NaN w sprzedaży na wartość 20 .

Pełną dokumentację online funkcji fillna() można znaleźć tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:

Jak policzyć brakujące wartości w pandach
Jak usunąć wiersze z wartościami NaN w Pandach
Jak usunąć wiersze zawierające określoną wartość w Pandach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *