Эквивалент лямбда-функции для SUMIF () в Python - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть информационный фрейм pandas с 2 столбцами: «Промышленный код» и «Сумма».Как можно суммировать все экземпляры суммы в соответствии с отраслевым кодом для одной лямбда-функции?(эквивалент sumif () в Excel) Я попробовал следующее:

введите описание изображения здесь

fun= lambda x,y: sum(x[i])/len(x[i]) in y[i]

Я получаю результат <function __main__.<lambda>> Любойидеи?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Почему бы просто не использовать groupby?

df = pd.DataFrame([['Aero', 'Energy', 'Aero', 'Hydra', 'Energy'],
                  [2, 5, 8, 6, 5]]).T
df.columns=['industry', 'amount']
df
   industry amount
0   Aero    2
1   Energy  5
2   Aero    8
3   Hydra   6
4   Energy  5

df.groupby('industry').sum()
        amount
industry    
Aero    10
Energy  10
Hydra   6
0 голосов
/ 03 декабря 2018

lambda создает функцию, и это то, что вы назначаете для fun.Вам необходимо применить эту функцию к аргументам для суммирования.

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