Я искал быстрый и эффективный способ заменить значения в данном столбце кадра данных pandas, только если соответствующие индексы принадлежат списку непоследовательных чисел.
Скажите non_consecutive_indices_list = [1400, 6571, 14526, 68420, ...] с ок. 30k различных значений.
Я пытался использовать .iloc, но получаю сообщение об ошибке:
df.iloc[non_consecutive_indices_list, 'column'] = New_Value
ValueError: Может индексировать только по местоположению с [целочисленным, целочисленным срезом (точка START включена, точка END исключена), списком целых чисел, логическим массивом].
В качестве альтернативы я пробовал следующее:
df.iloc[non_consecutive_indices_list].column = New_Value
Но это возвращает копию исходного кадра данных, поэтому я не могу заменить исходные значения.
Наконец, я попытался использовать цикл for, который работает, но это очень неэффективно и требует замены около 30 тыс. Значений:
for i in non_consecutive_indices_list:
df.loc[i, 'column'] = New_Value
Есть идеи, как это сделать быстрее всего?