Метод replace
Метод replace применяется к Series
и позволяет заменить одни значения на другие.
Он принимает словарь сопоставлений или два списка
со значениями для замены и новыми значениями.
Можно также передать скалярное значение и указать,
какое значение нужно заменить. Метод возвращает
новую серию с заменёнными значениями, исходная
серия остаётся неизменной.
Синтаксис
ser.replace(to_replace, value=None, inplace=False, limit=None, regex=False)
Пример
Давайте заменим значение 2 на 99:
import pandas as pd
ser = pd.Series([1, 2, 3, 2, 1])
res = ser.replace(2, 99)
print(res)
Результат выполнения кода:
0 1
1 99
2 3
3 99
4 1
dtype: int64
Пример
Заменим несколько значений с помощью словаря:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
res = ser.replace({1: 10, 3: 30, 5: 50})
print(res)
Результат выполнения кода:
0 10
1 2
2 30
3 4
4 50
dtype: int64
Пример
Заменим значения с помощью двух списков:
import pandas as pd
ser = pd.Series(['a', 'b', 'c', 'b', 'a'])
res = ser.replace(['a', 'b'], ['x', 'y'])
print(res)
Результат выполнения кода:
0 x
1 y
2 c
3 y
4 x
dtype: object
Пример
Используем регулярное выражение для замены части строк:
import pandas as pd
ser = pd.Series(['abc', 'def', 'abcde', 'xyz'])
res = ser.replace('^ab', 'XX', regex=True)
print(res)
Результат выполнения кода:
0 XXc
1 def
2 XXcde
3 xyz
dtype: object
Пример
Заменим значения с параметром inplace:
import pandas as pd
ser = pd.Series([1, 2, 3, 4, 5])
ser.replace(5, 99, inplace=True)
print(ser)
Результат выполнения кода:
0 1
1 2
2 3
3 4
4 99
dtype: int64