Вы также можете попробовать использовать apply
с get
методом dictionary
, как представляется, немного быстрее, чем replace
:
data['sex'] = data['sex'].apply({1:'Male', 0:'Female'}.get)
Тестирование с помощью timeit
:
%%timeit
data['sex'].replace([0,1],['Female','Male'],inplace=True)
Результат:
The slowest run took 5.83 times longer than the fastest. This could mean that an intermediate result is being cached.
1000 loops, best of 3: 510 µs per loop
Использование apply
:
%%timeit
data['sex'] = data['sex'].apply({1:'Male', 0:'Female'}.get)
Результат:
The slowest run took 5.92 times longer than the fastest. This could mean that an intermediate result is being cached.
1000 loops, best of 3: 331 µs per loop
Примечание: apply
со словарем следует использовать, если все возможные значения столбцов в фрейме данных определены в словаре else, оно будет пустым для тех, которые не определены в словаре.