DataFrame.replace() / Series.replace()

Метод replace() заменяет значения в данных по правилам: скаляр на скаляр, список на список, по словарю или по регулярному выражению.

Сигнатура

DataFrame.replace(to_replace=None, value=NoDefault, inplace=False,
                  limit=None, regex=False, method=NoDefault)

Параметры

  • to_replace — что заменять: скаляр, список, словарь, regex.

  • value — на что заменять.

  • regex — интерпретировать to_replace как регулярку.

  • inplace — изменить на месте.

Возвращаемое значение

Новый DataFrame / Series (или None при inplace=True).

Примеры

Пример 1. Скаляр на скаляр

import pandas as pd

s = pd.Series([22, -999, 23, -999, 25])  # -999 — флаг ошибки
print(s.replace(-999, None))
0    22.0
1     NaN
2    23.0
3     NaN
4    25.0
dtype: float64

Пример 2. Список → список

import pandas as pd

s = pd.Series(["ok", "err", "warn", "ok"])
print(s.replace(["err", "warn"], ["E", "W"]))
0    ok
1     E
2     W
3    ok
dtype: object

Пример 3. Словарь

import pandas as pd

df = pd.DataFrame({"status": ["ok", "fail", "ok", "fail"]})
print(df.replace({"ok": 1, "fail": 0}))
   status
0       1
1       0
2       1
3       0

Пример 4. По столбцам

import pandas as pd

df = pd.DataFrame({"a": [1, 2, 3], "b": [1, 2, 3]})
print(df.replace({"a": {1: 100}, "b": {3: 300}}))
     a    b
0  100    1
1    2    2
2    3  300

Пример 5. Regex

import pandas as pd

s = pd.Series(["sensor_01", "sensor_02", "actuator_01"])
print(s.replace(r"^sensor_", "S", regex=True))
0            S01
1            S02
2    actuator_01
dtype: object

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.