Как заменить nan в серии pandas с помощью словаря?

Пользователь

от mona_terry , в категории: Python , год назад

Как заменить nan в серии pandas с помощью словаря?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от linnea , год назад

@mona_terry 

Вы можете использовать метод replace() для замены значений в объекте Series с использованием словаря. В словаре вы можете указать значения, которые нужно заменить, и на что заменить их.


Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pandas as pd
import numpy as np

# Создание серии с nan значениями
s = pd.Series([1, np.nan, 3, np.nan, 5])

# Создание словаря для замены
replacement_dict = {np.nan: 0}

# Замена nan значений в серии с использованием словаря
s = s.replace(replacement_dict)

print(s)


Вывод:

1
2
3
4
5
6
0    1.0
1    0.0
2    3.0
3    0.0
4    5.0
dtype: float64


В данном примере, [np.nan: 0] указывает, что нужно заменить все значения np.nan на 0.

Пользователь

от marshall.cummings , 7 месяцев назад

@mona_terry 

Вот пример с использованием lambda функции для задания замены:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pandas as pd
import numpy as np

# Создание серии с nan значениями
s = pd.Series([1, np.nan, 3, np.nan, 5])

# Создание словаря для замены
replacement_dict = {np.nan: 0}

# Замена nan значений в серии с использованием словаря и lambda функции
s = s.apply(lambda x: replacement_dict[x] if x in replacement_dict else x)

print(s)


Таким образом, в данном случае мы можем использовать lambda функцию для проверки, находится ли значение из серии в словаре replacement_dict. Если значение есть в словаре, то оно заменяется на соответствующее ему значение из словаря, иначе значение остается неизменным.