SyntaxError: can't assign to function call в pandas
Я решаю вот такую задачу на Stepik: В dataframe с именем my_stat сохранены данные с 4 колонками: session_value, group, time, n_users.В переменной session_value замените все пропущенные значения на нули. В переменной n_users замените все отрицательные значения на медианное значение переменной n_users (без учета отрицательных значений, разумеется). Вот то что я написал (я новичок в pandas):
import pandas as pd
my_stat['session_value'].query('session_value == None') = 0
my_stat['n_users'].query('n_users < 0') = my_stat['n_users'].mean()
Но при отправке ответа я получаю такую ошибку:
File "jailed_code", line 23
my_stat.query('session_value == None') = 0
^
SyntaxError: can't assign to function call
Как это исправить?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Суть ошибки в том, что вы пытаетесь присвоить значение вызову функции.
Пример для воспроизведения ошибки:
lst = [1,2,3]
sum(lst) = 10
# SyntaxError: cannot assign to function call
Для заполнения NaN/None существуют специальные методы Series.fillna() и DataFrame.fillna():
In [206]: df
Out[206]:
a b c
0 1 2 NaN
1 4 5 6.0
2 7 8 NaN
In [207]: df["c"] = df["c"].fillna(0)
In [208]: df
Out[208]:
a b c
0 1 2 0.0
1 4 5 6.0
2 7 8 0.0