Найти - Пользователи
Полная версия: Помогите разобраться в решении задач
Начало » Python для новичков » Помогите разобраться в решении задач
1
blind_enemy
Доброго времени суток!

Не могу разобраться как решить задачу. Видимо не хватает понимания как работают некоторые функции, либо запаса знаний по функциям не хватает.

Имеем следующие данные (подгружено из .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’

Что делаю не так?

blind_enemy
Может кто подскажет иной вариант решения, более прямолинейный?
doza_and
Постановка задачи неясна.
Медиану
blind_enemy
-если в данном магазине, в среднем, C >10%
Что значит в среднем? По количеству пунктов среднем, среднее значение по ценникам, или среднее с учетом запасов на складе?
Они должны совпадать со средним до присвоения или после или после добавления каждого нового товара надо пересчитывать среднее?

blind_enemy
doza_and
Постановка задачи неясна.Медиану
В уже прописанных данных.

На примере покажу что хотят.

Магазин Наценка
М-Видео 10%
М-Видео 20%
М-Видео NaN
М-Видео NaN

Взаместо NaN необходимо подставить среднее от уже проставленных (10+20)/2=15% так как среднее >10%

Если бы было

Магазин Наценка
М-Видео 5%
М-Видео 3%
М-Видео NaN
М-Видео NaN

То ставили бы медиану.

Т.е. зря я назвал колонку А т.к. она только путает

doza_and
blind_enemy
иной вариант решения, более прямолинейный?
ну мне кажется индексы использовать
 import pandas as pd 
ds = pd.read_csv("a.csv")
idx = ds.b.isna()
m=ds.b.mean()
ds.b[idx] = m
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB