Проблема с заменой значения
a = my_stat.query('n_users > 0')['n_users'].median()
my_stat = my_stat.loc[(my_stat['n_users'] < 0, 'n_users')] = a
my_stat = my_stat.fillna(0)
Cам DataFrame:
session_value,time,group,n_users
0.0,12,B,9
,11,A,-1
1.0,8,A,1
2.0,9,B,3
2.0,10,B,9
3.0,8,A,8
,11,B,5
0.0,9,A,4
0.0,8,B,-11
0.0,9,A,-20
В переменной session_value замените все пропущенные значения на нули.
В переменной n_users замените все отрицательные значения на медианное значение переменной n_users (без учета отрицательных значений, разумеется).
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
# В переменной session_value замените все пропущенные значения на нули.
df["session_value"] = df["session_value"].fillna(0)
# В переменной n_users замените все отрицательные значения
# на медианное значение переменной n_users
# маска для нахождения отрицательных значений в ["n_users"]
neg_usr_mask = df["n_users"].lt(0)
df.loc[neg_usr_mask, "n_users"] = df.loc[~neg_usr_mask, "n_users"].median()
результат:
In [58]: df
Out[58]:
session_value time group n_users
0 0.0 12 B 9.0
1 0.0 11 A 5.0
2 1.0 8 A 1.0
3 2.0 9 B 3.0
4 2.0 10 B 9.0
5 3.0 8 A 8.0
6 0.0 11 B 5.0
7 0.0 9 A 4.0
8 0.0 8 B 5.0
9 0.0 9 A 5.0