Предупреждение - значение пытается быть установлено на копии среза - PullRequest
0 голосов
/ 26 октября 2018

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

Значение пытается быть установлено для копии среза из DataFrame. Попробуйте использовать .loc [row_indexer, col_indexer] = значение вместо

import math
task2_df['price_square'] = None
i = 0
for row in data.iterrows():
    task2_df['price_square'].at[i] = math.pow(task2_df['price'][i],2)
    i += 1

1 Ответ

0 голосов
/ 26 октября 2018

Для начала, я не вижу вашей ошибки на Pandas v0.19.2 (проверено кодом внизу этого ответа).Но это, вероятно, не имеет отношения к решению вашей проблемы.Вы должны избегать повторения строк в циклах уровня Python.Массивы NumPy, которые используются Pandas, специально предназначены для численных вычислений:

df = pd.DataFrame({'price': [54.74, 12.34, 35.45, 51.31]})
df['price_square'] = df['price'].pow(2)

print(df)

   price  price_square
0  54.74     2996.4676
1  12.34      152.2756
2  35.45     1256.7025
3  51.31     2632.7161

Тест на Pandas v0.19.2 без предупреждений / ошибок:

import math

df = pd.DataFrame({'price': [54.74, 12.34, 35.45, 51.31]})
df['price_square'] = None
i = 0

for row in df.iterrows():
    df['price_square'].at[i] = math.pow(df['price'][i],2)
    i += 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...