2014-09-23 50 views
2

下面的代码正在返回我不期待的额外信息。这是一个问题还是我错过了什么?来自简单群组的奇怪结果由

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 

正如你可以看到我的问题是与打印语句。我获得了两次“A”组,我不确定这是否是一个错误。有人可以确认吗?

大熊猫版本:“0.14.1”

+0

这不是正常的做法,请参阅此处的文档:http://pandas.pydata.org/pandas-docs/stable/groupby.html#iterating-through-groups – JohnE 2014-09-23 17:09:15

回答

2

从大熊猫documentation

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

这就是为什么您的方法在第一组上调用一次。这是通过实施。

+0

谢谢,错过了关于文档的一个 – DataByDavid 2014-09-23 17:06:01