Pandas: как заполнить значения nan с помощью словаря
Вы можете использовать функцию fillna() со словарем для замены значений NaN в одном столбце DataFrame pandas на основе значений в другом столбце.
Для этого вы можете использовать следующий базовый синтаксис:
#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))
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: Заполнение значений NaN в Pandas с помощью словаря
Допустим, у нас есть следующий DataFrame pandas, который содержит информацию о продажах в различных розничных магазинах:
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
Обратите внимание, что в столбце «Продажи» имеется несколько значений NaN.
Допустим, мы хотим заполнить эти NaN в столбце продаж , используя значения, соответствующие конкретным значениям в столбце магазина .
Для этого мы можем использовать следующий синтаксис:
#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
Мы использовали словарь, чтобы сделать следующие замены в столбце продаж:
- Если магазин — A , замените NaN в Sales на значение 5 .
- Если магазин — B , замените NaN в Sales на значение 10 .
- Если store — C , замените NaN в sales на значение 15 .
- Если магазин — D , замените NaN в Sales на значение 20 .
Полную онлайн-документацию по функции fillna() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Как посчитать пропущенные значения в пандах
Как удалить строки со значениями NaN в Pandas
Как удалить строки, содержащие определенное значение в Pandas