본문 바로가기
여러 가지 이야기/에러 모음

OverflowError: Python int too large to convert to C long

by 김판다t 2023. 8. 7.
OverflowError: Python int too large to convert to C long

 

번역 :  "Python int가 너무 커서 C long으로 변환할 수 없습니다."

 

 

 

import pandas as pd
s = pd.Series(['100000000000', '2000000000000'])

 

s

 

0     100000000000
1    2000000000000
dtype: object

 

 

s는 자료형이 object이고 문자열로 이루어져 있다

 

s를 정수로 바꾸고 싶다. 아래와 같은 코드를 쓰면 되겠지만 큰 숫자라서 다음과 같은 에러가 난다

 

 

 

s.astype('int')

 

OverflowError: Python int too large to convert to C long

 

 

이것은 astype('int')가 int32로 변환하기 때문이고

 

int32가 나타낼 수 있는 범위는 -2,147,483,648에서 2,147,483,647이기 때문이다

 

이럴 때는 'int64'로 바꿔주자

 

s.astype('int64')

 

output:

 

0     100000000000
1    2000000000000
dtype: int64

 

 

 

 

int64는 아래와 같은 범위의 숫자를 감당할 수 있다

 

- 9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

 

 

 

 

 

 

 

 

 

유튜브에서 판다스 강의 중입니다

 

https://www.youtube.com/@KimPandas