奇怪的结果来自简单的分组

时间:2014-09-23 16:56:33

标签: python pandas group-by

以下代码返回了我不期望的额外信息。这是一个问题,还是我错过了什么?

import pandas as pd
df = pd.DataFrame({'symbol':['A','B','C'],
                   'volume':[561,56,8]})

group = df.groupby('symbol')

def f1(group):
    print group
    return group

group.apply(f1)

我收到了:

  symbol  volume  
0      A     561  
  symbol  volume  
0      A     561  
  symbol  volume  
1      B      56  
  symbol  volume  
2      C       8  

正如您所看到的,我的问题在于print语句。我两次获得组“A”,我不确定这是不是一个bug。有人可以证实吗?

熊猫版:'0.14.1'

1 个答案:

答案 0 :(得分:2)

来自pandas documentation

  

警告:在当前实现中,应用调用func两次   第一组决定是否可以采用快速或慢速代码路径。   如果func有副作用,这会导致意外行为   将对第一组生效两次。

这就是为什么在第一组上调用一次方法的原因。它是实施的。