Форум сайта python.su
0
Доброго времени суток!
Не могу разобраться как решить задачу. Видимо не хватает понимания как работают некоторые функции, либо запаса знаний по функциям не хватает.
Имеем следующие данные (подгружено из .csv):
A - Вид товара
B - Название магазина
C - наценка (%)
Необходимо заменить в датафрейме пустые (NaN) значения в колонке C с учетом следующих правил:
-если в данном магазине, в среднем, C >10%, то значения меняем на среднее по магазину
-в ином случае меняем на медиану по магазину
Изначально идея была следующей - создать новые колонки с нужными значениями.
Нашел в сети следующее решение:
df = df.groupby()\
.transform(lambda x: x.fillna(x.mean()))
Но оно не работает, пишет: AttributeError: ‘function’ object has no attribute ‘groupby’
Что делаю не так?
Офлайн
0
Может кто подскажет иной вариант решения, более прямолинейный? 
Офлайн
253
Постановка задачи неясна.
Медиану
blind_enemyЧто значит в среднем? По количеству пунктов среднем, среднее значение по ценникам, или среднее с учетом запасов на складе?
-если в данном магазине, в среднем, C >10%
Офлайн
0
doza_andВ уже прописанных данных.
Постановка задачи неясна.Медиану

Отредактировано blind_enemy (Май 27, 2018 15:01:42)
Офлайн
253
blind_enemyну мне кажется индексы использовать
иной вариант решения, более прямолинейный?
import pandas as pd ds = pd.read_csv("a.csv") idx = ds.b.isna() m=ds.b.mean() ds.b[idx] = m
Офлайн