Изменить столбец DataFrame pandas на местеPython

Программы на Python
Ответить
Anonymous
 Изменить столбец DataFrame pandas на месте

Сообщение Anonymous »

Я недавно обновился до pandas версии 2.2.3 и несколько удивлен новым FutureWarning при попытке изменить столбец DataFrame на месте.< /p>
Например, строка, начинающаяся с df.A.where ниже, вызывает предупреждение

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

Я знаю о разнице между представлением и копией, но все еще удивлен предупреждением, поскольку оно не возникало в предыдущих версиях pandas (например, 2.1.4), поэтому я привык к элегантность обновления столбцов DataFrame на месте.

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

import numpy as np
import pandas as pd

np.random.seed(1)
df = pd.DataFrame(np.random.random(size=(10, 2)), columns=['A', 'B'])
series = df.A.copy()

df.A.where(df.A < 0.1, 0, inplace=True)  # warning
series.where(series < 0.1, 0, inplace=True)  # no warning
Нет ли способа заменить столбец DataFrame на месте? Это единственный правильный способ назначить столбец новому столбцу df['A'] = df.A.where(df.A < 0.1, 0, inplace=False)?

Подробнее здесь: https://stackoverflow.com/questions/790 ... mn-inplace
Ответить

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

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

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

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

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