Как лучше всего изменить значения в фрагменте столбца с помощью .iloc в Pandas?Python

Программы на Python
Anonymous
Как лучше всего изменить значения в фрагменте столбца с помощью .iloc в Pandas?

Сообщение Anonymous »

Поскольку в 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[].
Делаем это:

Код: Выделить всё

df.iloc[0:2,"A"] *= 2
выдает ошибку ValueError: индексирование на основе местоположения может иметь только типы [целочисленный, целочисленный срез (точка НАЧАЛА ВКЛЮЧЕНА, точка КОНЕЦА ИСКЛЮЧЕНА), список целых чисел, логический массив].
Итак, мой вопрос: как лучше всего выполнить эту операцию?>

Вернуться в «Python»