Изменение столбца на месте с помощью копирования при записиPython

Программы на Python
Ответить
Anonymous
 Изменение столбца на месте с помощью копирования при записи

Сообщение Anonymous »

У меня большой DataFrame. Я включил copy_on_write, как ожидается, это будет значение по умолчанию для версии 3.0. Я хочу ограничить значения некоторых столбцов (на месте). Вот так:

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

import pandas as pd

pd.options.mode.copy_on_write = True
df = pd.DataFrame({'a': '.', 'x': [1, 2, 3]})
df['x'].clip(lower=0, inplace=True)
Это выдает мне ChainedAssignmentError:

Значение пытается установиться в копии a
DataFrame или Series через цепное назначение с использованием метода inplace
.

При использовании режима копирования при записи такой метод inplace никогда
не работает для обновления исходный DataFrame или Series, поскольку
промежуточный объект, для которого мы устанавливаем значения, всегда ведет себя как
копия.
Например, при выполнении df[col]. метод(value, inplace=True), попробуйте
использовать вместо этого df.method({col: value}, inplace=True), чтобы выполнить
операцию inplace над исходный объект.

Как это должно работать? Я пробовал варианты предложения из последнего абзаца и другие варианты, но постоянно получаю ошибку.

Подробнее здесь: https://stackoverflow.com/questions/772 ... y-on-write
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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