0
Avec l'échantillon, la cible est:récapitulant pandas géants multiindice dataframe
Calculer les funtions dans chaque valeur de
'A'
, en d'autres termes, calculer quelque chose dans toutes les valeurs des variables dans toutesB
valeurs dans chaque étiquetteA
.:
import numpy as np
import pandas as pd
df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
'foo', 'bar', 'foo', 'foo'],
'B' : ['one', 'one', 'two', 'three',
'two', 'two', 'one', 'three'],
'C' : np.random.randn(8),
'D' : np.random.randn(8)})
def var1(x): return max(x)-min(x)
def var2(x): return (max(x)-min(x))/max(x)
def var3(x): return (max(x)-min(x))/ len(x)
df = df.groupby(['A','B']).agg({'C': var1, 'D': [var2, var3]})
cible
La sortie se présente comme suit:
A var1 var2 var3
bar 0.000000 -0.000000 0.000000
foo 1,008986 -0.8572265 0.3015905
fonctions comme:
def var1(x): return max(x)-min(x)
def var2(x): return (max(x)-min(x))/max(x)
def var3(x): return (max(x)-min(x))/ len(x)
def mean(numbers):
return float(sum(numbers))/max(len(numbers), 1)
ok, vous l'avez, mais avec une fonction définie? – PeCaDe
@PeCaDe, voir la mise à jour ... – MaxU