当只有n个组时,为什么DataFrameGroupBy.apply调用n + 1次?

时间:2017-07-20 17:46:39

标签: python pandas

这是我的数据:

+--------+----------------+
| class  |     title      |
+--------+----------------+
| ClassA | ClassA Title 1 |
| ClassA | ClassA Title 2 |
| ClassA | ClassA Title 3 |
| ClassB | ClassB Title 1 |
| ClassB | ClassB Title 2 |
| ClassB | ClassB Title 3 |
| ClassC | ClassC Title 1 |
| ClassC | ClassC Title 2 |
| ClassC | ClassC Title 3 |
+--------+----------------+

class列上分组时,只有3个组,但是当我运行以下代码时,它会打印4个组 - 第一个组正在重复:

df.groupby(["class"]).apply(lambda group: print(group))

打印:

    class           title
0  ClassA  ClassA Title 1
1  ClassA  ClassA Title 2
2  ClassA  ClassA Title 3
    class           title
0  ClassA  ClassA Title 1
1  ClassA  ClassA Title 2
2  ClassA  ClassA Title 3
    class           title
3  ClassB  ClassB Title 1
4  ClassB  ClassB Title 2
5  ClassB  ClassB Title 3
    class           title
6  ClassC  ClassC Title 1
7  ClassC  ClassC Title 2
8  ClassC  ClassC Title 3

1 个答案:

答案 0 :(得分:4)

请参阅Pandas docs

备注

在当前实现中,在第一列/行上应用调用func两次,以确定它是否可以采用快速或慢速代码路径。如果func有副作用,这可能会导致意外行为,因为它们会对第一列/行生效两次。