当我使用pandas DataFrame groupby然后应用用户定义的函数时,调用了多少个函数?

时间:2018-09-30 02:00:46

标签: python pandas

我有一个熊猫DataFrame:

df = pd.DataFrame({'A':['a', 'a', 'a', 'a', 'a'], 'B':[1, 2, 3, 4, 5]})

和用户定义的函数:

def f(df):
    return df.max() - df.min()

当我运行以下代码时:

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

函数f将被调用多少次?我测试了这段代码,发现f被调用了4次,有人可以解释吗?

1 个答案:

答案 0 :(得分:0)

它应该被称为ngroup times,如果A中有两个group,它将被两次调用。另外,您可以使用np.ptp

df.groupby('A').B.apply(np.ptp)
Out[52]: 
A
a    4
Name: B, dtype: int64