熊貓組。應(yīng)用方法復(fù)制第一組我的第一個(gè)問題是:我對(duì)熊貓群體應(yīng)用方法的這種行為感到困惑(0.12.0-4),它似乎兩次將這個(gè)函數(shù)應(yīng)用到數(shù)據(jù)框架的第一行。例如:>>> from pandas import Series, DataFrame>>> import pandas as pd>>> df = pd.DataFrame({'class': ['A', 'B', 'C'], 'count':[1,0,2]})>>> print(df) class count 0 A 1 1 B 0 2 C 2我首先檢查groupby函數(shù)是否正常工作,它似乎很好:>>> for group in df.groupby('class', group_keys = True):>>> print(group)('A', class count0 A 1)('B', class count1 B 0)('C', class count2 C 2)然后,我嘗試使用groupby對(duì)象執(zhí)行類似的操作,并獲得第一行輸出兩次:>>> def checkit(group):>>> print(group)>>> df.groupby('class', group_keys = True).apply(checkit) class count0 A 1 class count0 A 1 class count1 B 0 class count2 C 2任何幫助都將不勝感激!謝謝。編輯:@Jeff提供了下面的答案。我很密集,沒有立即理解它,所以這里有一個(gè)簡單的例子來說明,盡管上面示例中的第一個(gè)組有雙打印輸出,但Apply方法在第一個(gè)組上只運(yùn)行了一次,并且不改變?cè)紨?shù)據(jù)框架:>>> def addone(group):>>> group['count'] += 1>>> return group>>> df.groupby('class', group_keys = True).apply(addone)>>> print(df) class count0 A 11 B 02 C 2但是,通過將方法的返回分配給一個(gè)新對(duì)象,我們可以看到它按預(yù)期工作:df 2=df.groupby(‘class’,group_key=True).application(Addone)print(Df 2) class count0 A 21 B 12 C 3
- 2 回答
- 0 關(guān)注
- 446 瀏覽
添加回答
舉報(bào)
0/150
提交
取消