개발로그필름
[데이터 TIL] ValueError: invalid literal for int() with base 10: '54,071,677' 본문
데이터분석가/데이터 TIL
[데이터 TIL] ValueError: invalid literal for int() with base 10: '54,071,677'
yuullog 2025. 2. 11. 10:46728x90
반응형
SMALL
데이터를 전처리 하는 과정에서 생긴 에러이다
object 타입을 int형으로 바꾸는 과정에서 문제가 생겼는데
내가 바꾸려는것이 예를 들어 '54,071,677' 였는데 이건 str로 인식되어 , 를 제거후 숫자로 변환해야하는 것이었다
정리하면,
❌ 문제 원인: 쉼표(,)가 포함된 문자열을 숫자로 변환하려고 시도함
📌 이 오류는 Video views, Likes, Dislikes 컬럼의 값이 쉼표(,)가 포함된 문자열이기 때문
➡️ 예를 들어 '54,071,677'은 숫자가 아니라 문자열(str)로 인식됨.
✅ 해결 방법: 쉼표(,) 제거 후 숫자로 변환
쉼표(,)를 먼저 제거하고 int 또는 float으로 변환해야 한다
하지만 난 int로 모두 바꾸고 싶기 때문에 astype(int)로 코드 작성
# 쉼표(,) 제거 후 숫자로 변환하는 함수
def convert_to_numeric(column):
return pd.to_numeric(youtube_df[column].str.replace(',', ''), errors='coerce').fillna(0).astype(int)
# 숫자로 변환할 컬럼 목록
numeric_columns = ['Video views', 'Likes', 'Dislikes']
# 변환 실행
for col in numeric_columns:
if col in youtube_df.columns:
youtube_df[col] = convert_to_numeric(col)
# 변환 후 데이터 타입 확인
print(youtube_df.dtypes)
✔️ errors='coerce'는 숫자로 변환할 수 없는 값이 있을 때 오류가 발생하는 대신 NaN(결측값)으로 처리하도록 하는 옵션
반응형
LIST
'데이터분석가 > 데이터 TIL' 카테고리의 다른 글
[데이터 TIL] 분산이란? (0) | 2025.02.11 |
---|---|
[데이터 TIL] plt.xscale('log') & plt.yscale('log')란? (0) | 2025.02.11 |
[데이터 TIL] 백분위수란? (0) | 2025.02.10 |
[데이터 TIL] ci=None 신뢰구간 비활성화 (0) | 2025.02.10 |
[데이터 TIL] 그래프 한글 깨질 때 해결 방법 & 그래프 선명하게 하는 법 (0) | 2025.02.10 |
Comments