Grouper avec les fonctions définies par l'utilisateur Pandas

Je comprends que le passage d'une fonction comme une clé de groupe appelle la fonction une fois par l'indice de valeur avec les valeurs de retour d'être utilisés comme noms de groupe. Ce que je n'arrive pas à comprendre est comment appeler la fonction sur les valeurs de la colonne.

Donc je ne peux faire ceci:

people = DataFrame(np.random.randn(5, 5), columns=['a', 'b', 'c', 'd', 'e'], index=['Joe', 'Steve', 'Wes', 'Jim', 'Travis'])
def GroupFunc(x):
    if len(x) > 3:
        return 'Group1'
    else:
        return 'Group2'

people.groupby(GroupFunc).sum()

Cette divise les données en deux groupes, dont l'un a des valeurs de l'indice de longueur 3 ou moins, et l'autre avec une longueur de trois ou plus. Mais comment puis-je passer l'une des valeurs de la colonne? Ainsi par exemple, si la colonne d de la valeur pour chaque point d'indice est supérieur à 1. Je me rends compte que je pouvais juste faire ce qui suit:

people.groupby(people.a > 1).sum()

Mais je veux savoir comment faire cela dans une fonction définie par l'utilisateur pour référence future.

Quelque chose comme:

def GroupColFunc(x):
if x > 1:
    return 'Group1'
else:
    return 'Group2'

Mais comment dois-je appeler?
J'ai essayé

people.groupby(GroupColFunc(people.a))

et des variantes similaires, mais cela ne fonctionne pas.

Comment puis-je passer la colonne des valeurs de la fonction?
Comment pourrais-je passer plusieurs valeurs de la colonne par exemple pour le groupe que les personnes.a > gens.b par exemple?

source d'informationauteur Woody Pride