Несколько агрегаций одного и того же столбца с использованием pandas GroupBy.agg()Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Несколько агрегаций одного и того же столбца с использованием pandas GroupBy.agg()

Сообщение Anonymous »

Существует ли встроенный в pandas способ применить две разные функции агрегирования f1, f2 к одному и тому же столбцу df["returns"] без необходимости вызова agg() несколько раз?
Пример кадра данных:

Код: Выделить всё

import pandas as pd
import datetime as dt
import numpy as np

pd.np.random.seed(0)
df = pd.DataFrame({
"date"    :  [dt.date(2012, x, 1) for x in range(1, 11)],
"returns" :  0.05 * np.random.randn(10),
"dummy"   :  np.repeat(1, 10)
})
Синтаксически неправильный, но интуитивно правильный способ сделать это:

Код: Выделить всё

# Assume `f1` and `f2` are defined for aggregating.
df.groupby("dummy").agg({"returns": f1, "returns": f2})
Очевидно, что Python не допускает дублирования ключей. Есть ли другой способ выразить входные данные в agg()? Возможно, список кортежей [(столбец, функция)] будет работать лучше, чтобы разрешить применение нескольких функций к одному и тому же столбцу? Но похоже, что agg() принимает только словарь.
Есть ли обходной путь, помимо определения вспомогательной функции, которая просто применяет обе функции внутри нее? (Как это вообще будет работать с агрегацией?)

Подробнее здесь: https://stackoverflow.com/questions/125 ... roupby-agg
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»