首页 > 解决方案 > 为什么groupby函数返回重复数据

问题描述

我正在测试 pandas.groupby 函数并生成了一个随机数据框

df = pd.DataFrame(np.random.randint(5,size=(6,3)), columns=list('abc'))

在随机情况下,df 是:

   a  b  c
0  2  2  2
1  1  4  2
2  3  0  1
3  2  1  3
4  0  2  2
5  2  1  4

当我使用以下代码打印出 groupby 对象时,我得到了一些有趣的结果。

def func(x):
    print(x)
df.groupby("a").apply(lambda x: func(x))

   a  b  c
0  0  1  4
   a  b  c
0  0  1  4
   a  b  c
2  2  4  1
3  2  2  1
   a  b  c
1  4  0  0
4  4  4  3

谁能让我知道为什么在这种情况下索引 0 出现两次?

标签: pythonpandaspandas-groupby

解决方案


DataFrame.groupby.apply对第一组进行两次评估,以确定其余组是否可以遵循快速计算路径。这种行为在最近的版本中已经改变,如这里pandas讨论的那样


推荐阅读