Почему Pandas дает AttributeError: у объекта 'SeriesGroupBy' нет атрибута 'pct'? - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь передать пользовательскую функцию pct методу Pandas agg, и она работает, если я только передаю эту функцию, но не при использовании формата словаря для определения функций.Кто-нибудь знает почему?

import pandas as pd

df = pd.DataFrame([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]],
                   columns=['A', 'B', 'C'])

pct = lambda x: len(x)/len(df)

df.groupby('A').agg(pct)

возвращается как положено

    B   C
A       
1   0.333333    0.333333
4   0.333333    0.333333
7   0.333333    0.333333

Но

aggs = {'B':['pct']}
df.groupby('A').agg(aggs)

возвращает следующую ошибку:

AttributeError: 'SeriesGroupBy' object has no attribute 'pct'

1 Ответ

0 голосов
/ 04 октября 2018

Есть строка 'pct', нужна переменная pct - лямбда-функция путем удаления '':

aggs = {'B':pct}
print(df.groupby('A').agg(aggs))

          B
A          
1  0.333333
4  0.333333
7  0.333333
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...