Учитывая следующий (полностью перебитый) пример фрейма данных
import pandas as pd
import datetime as dt
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)
})
Существует ли существующий встроенный способ применения двух разных функций агрегирования к одному и тому же столбцу без необходимости многократного вызова agg
?
Синтаксически неправильный, но интуитивно правильный способ сделать это:
# Assume 'function1' and 'function2' are defined for aggregating.
df.groupby("dummy").agg({"returns":function1, "returns":function2})
Очевидно, что Python не позволяет дублировать ключи. Есть ли другой способ выражения ввода в agg
? Возможно, список кортежей [(column, function)]
будет работать лучше, чтобы несколько функций применялись к одному столбцу? Но похоже, что он принимает только словарь.
Есть ли обходной путь для этого помимо определения вспомогательной функции, которая просто применяет обе функции внутри нее? (Как это будет работать с агрегацией?)