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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *