2014-09-23 36 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