gpt4 book ai didi

python - Pandas 中的计数器 groupby 申请

转载 作者:太空宇宙 更新时间:2023-11-04 01:06:47 24 4
gpt4 key购买 nike

有没有办法在通过 pandas groupby 调用的函数中应用一个计数器变量?

def func():
# Get the counter for how many times this func has been called

df.groupby('A').apply(func)

这就是我现在正在做的:

grp = df.groupby('A')
idx = 1
for name, group in grp:
print name
func(grp,idx)
idx += 1

最佳答案

注意:这是一个实现细节,apply 中的函数被调用的次数可能取决于返回类型/apply 是采用慢速还是快速路径...

我会通过更新此函数的属性来计算函数被调用的次数:

In [11]: df = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'])

In [12]: df
Out[12]:
A B
0 1 2
1 3 4

In [13]: def f(a):
f.i += 1
return a

In [14]: f.i = 0 # set the number of calls to 0

In [15]: g = df.groupby('A')

In [16]: g.apply(f)
Out[16]:
A B
0 1 2
1 3 4

In [17]: f.i
Out[17]: 3

正如我们所见,调用 f 的次数是 3(也许令人惊讶)。

要获取组数,您可以使用 ngroups 属性:

In [18]: g.ngroups
Out[18]: 2

关于python - Pandas 中的计数器 groupby 申请,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29980712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com