Простые способы maping-а значений с Pandas
Жизнь любого человека — зеркальное отражение его представлений о ней (Макс Фрай). Очень распространенной табличной операцией является отображение значений колонки по некоторому словарю. Рассмотрим основные способы и их специфику.
В демонстрационных целях создадим серию и словарь:
import pandas as pd ser = pd.Series(['key_old3', 'key_old5', 'key_old1', 'key_old3', 'key_old2', 'key_old4' ,'key_old3']) spr_d = {'key_old1': 'key_new1', 'key_old2': 'key_new2', 'key_old3': 'key_new3', 'key_old4': 'key_new4'}
Map
Методу map можно напрямую передать словарь и добиться цели:
ser.map(spr_d)
Как можно заметить, значения, ключи к которым в словаре не найдутся, будут заполнены пропусками. Для их сохранения можно чуть видоизменить вызов (воспользоваться методом get словаря для задания действия по умолчанию - возвращать само значение):
ser.map(lambda x: spr_d.get(x, x))
Альтернативно можно вернуть предопределенное значение:
ser.map(lambda x: spr_d.get(x, 'old'))
Replace
Аналогичные действия можно провести с методом replace:
ser.replace(spr_d)
Он оставляет старые ключи. Опять же, когда незамененные значения следует как-то помечать, воспользуйтесь методом map с оставлением пропусков либо заполнением предопределенным значением