Использование numpy.where
:
s = np.where(s, 'B', 'A')
Это намного быстрее, чем map
и apply
, если вы кормите логическую серию:
s = pd.Series(np.random.choice([True, False], 1000000))
%%timeit
np.where(s, 'A','B')
4,43 мс ± 94,3 мкс на цикл (среднее ± стандартное отклонение из 7 циклов, по 100 циклов в каждом)
mapper={True:'B',False:'A'}
%%timeit
s.map(mapper)
44,1 мс ± 178 мкс на цикл (среднее ± стандартное отклонение из 7 циклов, по 10 циклов в каждом)
%%timeit
s.apply(lambda x: 'B' if x else 'A')
126 мс ± 4,51 мс на цикл (среднее ± стандартное отклонение из 7 циклов, по 10 циклов в каждом)