import numpy as np
import pandas as pd
dummies = np.array(pd.get_dummies(list('abdccadab'))) #categorical IV
groupIDs = np.array([10,10,10,10,20,20,30,30,30]) #groups(/strata)
_,idx,tags = np.unique(groupIDs, return_index=1, return_inverse=1)
Ich weiß, wir können Summen, Multiplikationen etc pro Gruppe, pro Spalte, z.Verwenden von NumPy reduceat zur Berechnung von gruppenbasierten Durchschnitten
np.multiply.reduceat(dummies,idx)[tags]
aber gibt es eine Möglichkeit, die Mittel dieser Behälter zu berechnen?
np.mean.reduceat
np.average.reduceat
und funktionieren nicht, da
AttributeError: 'function' object has no attribute 'reduceat'
Nur 'ufunc' haben' reduceat'. 'mean' und' average' sind nicht diese Art von Funktion. – hpaulj
Aus Neugier, gibt es einen Grund, warum Sie versuchen, dies mit reinem numpy (im Gegensatz zu einer Pandas Groupby) tun? – DSM
Kein anderer Grund als ich bin weniger vertraut mit Pandas als numpy und wusste nicht einmal, dass es auch in Pandas getan werden konnte – Tony