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