我正在学习将自定义函数应用于数据框中的每个组。假设我有如下数据框:
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: []
>>>
如何获得所需的输出?提前致谢。