Скользящее среднее с условиями (задача на собеседовании) ⇐ Python
Скользящее среднее с условиями (задача на собеседовании)
Я столкнулся с этим вопросом во время собеседования и не могу придумать решения. В этом и проблема. Предположим, у вас есть следующий набор данных (он выходит за рамки времени 2, но это всего лишь образец для работы):
импортировать панд как pd данные = pd.DataFrame({ 'время': [1, 1, 1, 2, 2, 2], 'names': ["Энди", "Боб", "Карен", "Энди", "Мэтт", "Сим"], 'вал': [1, 2, 3, 5, 6, 8] }) Напишите функцию для вычисления среднего значения до каждого момента времени, но не учитывайте повторяющиеся имена. То есть для времени 1 среднее значение равно (1+2+3)/3, для времени 2 я не включаю первое значение Энди, равное «1», я включаю только самое последнее значение, поэтому среднее значение для времени 2 равно (2 +3+5+6+8)/5.
Я пытался создать два словаря: один хранит счетчик «времени», а другой отслеживает «имена» и «значения», но я не знаю, как действовать дальше или как найти эффективный решение, чтобы я не пересчитывал средства на каждом этапе (это было еще одно требование для собеседования).
Это не обязательно должно быть решение для pandas, форма данных может быть любой, какую вы предпочитаете. Я просто представил его как pandas df.
Я столкнулся с этим вопросом во время собеседования и не могу придумать решения. В этом и проблема. Предположим, у вас есть следующий набор данных (он выходит за рамки времени 2, но это всего лишь образец для работы):
импортировать панд как pd данные = pd.DataFrame({ 'время': [1, 1, 1, 2, 2, 2], 'names': ["Энди", "Боб", "Карен", "Энди", "Мэтт", "Сим"], 'вал': [1, 2, 3, 5, 6, 8] }) Напишите функцию для вычисления среднего значения до каждого момента времени, но не учитывайте повторяющиеся имена. То есть для времени 1 среднее значение равно (1+2+3)/3, для времени 2 я не включаю первое значение Энди, равное «1», я включаю только самое последнее значение, поэтому среднее значение для времени 2 равно (2 +3+5+6+8)/5.
Я пытался создать два словаря: один хранит счетчик «времени», а другой отслеживает «имена» и «значения», но я не знаю, как действовать дальше или как найти эффективный решение, чтобы я не пересчитывал средства на каждом этапе (это было еще одно требование для собеседования).
Это не обязательно должно быть решение для pandas, форма данных может быть любой, какую вы предпочитаете. Я просто представил его как pandas df.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как рассчитать скользящее/скользящее среднее с помощью Python + NumPy/SciPy?
Anonymous » » в форуме Python - 0 Ответы
- 34 Просмотры
-
Последнее сообщение Anonymous
-