>source

pandas 데이터 프레임을 쪽모이 세공 마루 파일로 내보내려고 합니다. 이 데이터 프레임은 7600만 행과 6열(int64(3) 열, object(3) 열)이 있는 4GB 이상의 메모리 사용량을 가지고 있습니다. 그러나 이것을 쪽모이 세공 마루 파일로 작성하려고 하면 OverflowError: Python int too large to convert to C long message가 표시됩니다.

다음과 같이 fastparquet를 사용하고 있습니다.

import fastparquet
    from fastparquet import write
    write('ref_util_table.parq', df)

이것은 다른 데이터 프레임에서 잘 작동합니다. 모든 int64 열은 범위 내에 있습니다(즉, 0-1000 범위).

문제를 해결하는 방법에 대한 아이디어가 있습니까?

int 중 어느 것도 sys.maxsize보다 크지 않다고 확신하십니까? 예를 들어, df.select_dtypes(int64).columns]의 i에 대한 [df[i].max()의 값은 무엇입니까?

G. Anderson2022-01-15 11:54:13

귀하의 code를 약간 수정하여 [1, 686, 193]과 같은 배열을 얻었습니다. int64 [df[i].max() in df.select_dtypes('int64').columns]에 따옴표를 추가합니다. code에서 max()를 min()으로 바꾸면 최소값은 [0,0,0]입니다.

veg20202022-01-15 11:54:13
  • 이전 json : 가능한 사전에서 특정 값을 가져오는 방법
  • 다음 간단한 CNN에서 매우 긴 훈련 시간