2016-09-27 2 views
2

dask GroupBy 객체를 반복하여 기본 데이터 프레임에 액세스 할 수 있습니까? 나는 시도 : 그러나dask에서 GroupBy 객체를 반복합니다.

import dask.dataframe as dd 
import pandas as pd 
pdf = pd.DataFrame({'A':[1,2,3,4,5], 'B':['1','1','a','a','a']}) 
ddf = dd.from_pandas(pdf, npartitions = 3) 
groups = ddf.groupby('B') 
for name, df in groups: 
    print(name) 

,이 오류가 발생합니다

는 는 더 일반적으로 말하면, 상호 작용의 어떤 종류 DASK GROUPBY 객체 수 있습니까

KeyError: 'Column not found: 0'의 적용 방법에서 제외?

+0

get_group() 메서드가 구현되었음을 알게되어 기뻤습니다. –

+0

당신의 코드가 나를 위해 작동합니다 –

+0

@StevenG이 피드백에 감사드립니다. 아마 당신의 코드에서 내 설정 –

답변

2

당신은 dask로 이것을하는 그룹을 반복 할 수 있습니다. 어쩌면 더 좋은 방법이 있지만 나에게 도움이 될 것입니다.

import dask.dataframe as dd 
import pandas as pd 
pdf = pd.DataFrame({'A':[1, 2, 3, 4, 5], 'B':['1','1','a','a','a']}) 
ddf = dd.from_pandas(pdf, npartitions = 3) 
groups = ddf.groupby('B') 

for group in pdf['B'].unique(): 
    print groups.get_group(group) 

이 일반적으로 Dask.dataframe하지 않는 것이 좋습니다 개체를 반복

dd.DataFrame<dataframe-groupby-get_group-e3ebb5d5a6a8001da9bb7653fface4c1, divisions=(0, 2, 4, 4)> 
dd.DataFrame<dataframe-groupby-get_group-022502413b236592cf7d54b2dccf10a9, divisions=(0, 2, 4, 4)> 
2

을 반환합니다. 비효율적이다. 대신에 함수를 생성하고 결과 그룹에 함수를 매핑 해 볼 수 있습니다. groupby.apply

+0

Groupby.apply가 https://github.com/dask/dask/issues/1587 때문에 작동하지 않아 해결 방법을 찾고있었습니다. –