2017-02-15 88 views
2

它可能不是從標題清楚,但我想用一個排序的熊貓數據幀做這樣的事情:按分組從現有分類的熊貓數據框組中提取數據框?

假設數據幀是這樣的:

name amount 

abc  25 

abc  45 

xyz  20 

xyz  50 

xyz  55 

現在我想做的是按名稱在此數據框上執行groupby。

然後逐個循環組,並對它們做一些處理。

這是第一個循環我想存儲組ABC到另一箇中間數據幀處理,如此下去:

所以當循環:

這是第一次迭代:

中間數據幀應該有

name amount 

abc 25 

abc 45 

那麼下一次迭代:

中間數據幀應該有

name amount 

xyz 20 

xyz 50 

xyz 55 

所以,我想這樣做。我不知道如何做到這一點。

回答

3

如果需要循環DataFrameGroupBy對象:

for idx, df in df.groupby('name'): 
    print (df) 
    name amount 
0 abc  25 
1 abc  45 
    name amount 
2 xyz  20 
3 xyz  50 
4 xyz  55 

如果需要一些處理使用groupbyapply

def f(x): 
    print (x) 

df = df.groupby('name').apply(f) 
print (df) 

還要檢查flexible apply in docs