Я учусь применять самостоятельно определенную функцию к каждой группе во фрейме данных. Допустим, у меня есть фрейм данных, как показано ниже:
A B C
1 4 3
1 5 4
1 2 10
2 7 2
2 4 4
2 6 6
Я определил простую функцию для получения длины столбца «B» и суммы столбца «C» с последующим суммированием длины и суммы для каждой группы в столбце «A» для создания столбца «D». Поэтому я ожидаю получить следующий вывод:
A D
1 20
2 15
Я запустил код ниже и не могу получить то, что хочу:
>>> import pandas as pd
>>>
>>> df = pd.read_csv("foo.txt", sep="\t")
>>> df
A B C
0 1 4 3
1 1 5 4
2 1 2 10
3 2 7 2
4 2 4 4
5 2 6 6
>>>
>>> def someFunction(x, y):
... length = len(x)
... total = sum(y)
... number = length + total
... print(number)
...
>>> f = lambda x: someFunction(x['B'], x['C'])
>>> output = df.groupby(['A']).apply(f)
20
20
15
>>> output
Empty DataFrame
Columns: []
Index: []
>>>
Как получить желаемый результат? Заранее спасибо.