대용량 파일 (50GB)을 처리하기 위해 Dask를 사용하려고합니다. 일반적으로 메모리에로드하고 팬더를 사용합니다. 두 개의 열 "A"와 "B"를 그룹화하고 열 "C"가 값으로 시작될 때마다 특정 그룹의 해당 열에서 해당 값을 반복하려고합니다. 팬더에서Dask의 기본 groupby 작업
, 나는 다음을 수행하게
df['C'] = df.groupby(['A','B'])['C'].fillna(method = 'ffill')
은 무엇 DASK에 해당하는 것입니까? 또한 , 나는
내 진행 지금까지
당신을 감사합니다, 조금 팬더에 반대 DASK에 문제를 구조화하는 방법으로 손실입니다 :첫 번째 설정된 인덱스 :
df1 = df.set_index(['A','B'])
그런 GROUPBY :
df1.groupby(['A','B']).apply(lambda x: x.fillna(method='ffill').compute()
https://github.com/nirizr/dask/tree/groupy_fillna 당신에게 Nirlzr 감사드립니다. 저는 각 그룹의 가치에 NAN 주제를 채우고 싶습니다. 일반적으로 그룹마다 다릅니다. 다른 그룹에 속하더라도 모든 NAN에 동일한 가치를 부여하는 솔루션입니까? – dleal
예, 불행히도 당신이 맞습니다. 그것이 당신의 목표라면 - df [ 'C'] = df [ 'C']. fillna (c_fill)'와 비슷한 것이 될 것입니까? – NirIzr
참고 :이 작은 예제에서는 : http://stackoverflow.com/questions/39048181/groupby-of-splitted-data-pandas 만약 내가 A를 dask 데이터 프레임으로 읽으면 다음 명령이 작동합니다 : A.groupby ('ID') [ 'value']. apply (lambda x : x.fillna (method = 'ffill')) 그러나 큰 데이터 집합에서 다음 오류가 발생합니다. ValueError : 문자열을 float로 변환 할 수 없습니다. T – dleal