Допустим, у меня есть следующий фрейм данных:
import pandas as pd
df = pd.DataFrame({'n': [1, 2, 3], 'm': [4, 4, 7]})
df.loc[df['m']==4,'n']=1
Выполнение этой функции .loc на относительно небольшом наборе данных (~ 50 000 выборок int32) занимает 11 мс.Есть ли способ, которым я могу ускорить это?Я надеюсь, что та же самая операция будет сокращена до 10-100 мкс.
Обновление
Я отредактировал приведенный выше пример, чтобы он был немного более кратким.
Послетестирование предложенных методов было самым быстрым:
df['n'].values[df['m'].values == 4] = 1
После применения его к набору данных из ~ 50 000 образцов это решение работало в 244 раза быстрее, чем исходный код.