Поскольку в Pandas 3.0 применяется ChainedAssignmentErrors, мне было интересно, каков правильный способ изменения значений в фрагменте столбца, где нарезка выполняется с помощью .iloc[].
Например, это вызывает ChainedAssignmentEror:
Код: Выделить всё
df = pd.DataFrame({"A": [1, 1, 1, 2, 2]}, columns=["A"])
df.iloc["A"][0:2] *= 2
Рекомендация исправить это при использовании .loc[] — просто использовать df.loc[0:2,"A"]*=2, что работает хорошо. Однако, если у меня есть только индексы строк, которые я хочу разрезать, мне нужно будет использовать .iloc[].
Делаем это:
выдает ошибку ValueError: индексирование на основе местоположения может иметь только типы [целое число, целочисленный срез (точка НАЧАЛА ВКЛЮЧЕНА, точка КОНЕЦА ИСКЛЮЧЕНА), список целых чисел, логический массив].
Итак, каков правильный способ выполнения этой операции?>