본문 바로가기
Python/Pandas

pandas dataframe TypeError (incompatible types) 오류 해결하기

by PySun 2023. 10. 11.
반응형

판다스(Pandas) DataFrame을 사용할 때 "TypeError" 에러가 발생하는 상황과 이를 해결하기 위한 여러 가지 방법에 대해 설명하겠습니다. "TypeError"는 데이터 유형이 호환되지 않을 때 발생하는 오류입니다.

상황 1: 문자열과 숫자열 간 연산 시 TypeError

import pandas as pd

data = {'이름': ['Alice', 'Bob', 'Charlie'],
        '나이': [30, 25, 35]}

df = pd.DataFrame(data)

# 문자열과 숫자열 간 연산 시 TypeError 발생
result = df['이름'] + 5

이 경우, 문자열 열과 숫자 5를 더하려고 시도하여 TypeError가 발생합니다.

해결 방법 1: 데이터 유형 변환

데이터 유형을 변환하여 호환 가능한 형태로 변경하세요.

import pandas as pd

data = {'이름': ['Alice', 'Bob', 'Charlie'],
        '나이': [30, 25, 35]}

df = pd.DataFrame(data)

# 숫자열로 변환 후 연산
result = df['나이'] + 5

상황 2: 다른 데이터 유형을 가진 열 간 연산 시 TypeError

import pandas as pd

data = {'이름': ['Alice', 'Bob', 'Charlie'],
        '나이': [30, 25, 35],
        '평균 점수': [85.5, 92.0, 78.5]}

df = pd.DataFrame(data)

# 다른 데이터 유형을 가진 열 간 연산 시 TypeError 발생
result = df['나이'] + df['평균 점수']

이 경우, 숫자열과 부동 소수점 숫자열을 더하려고 시도하여 TypeError가 발생합니다.

해결 방법 2: 데이터 유형 변환

데이터 유형을 호환 가능한 형태로 변환하세요.

import pandas as pd

data = {'이름': ['Alice', 'Bob', 'Charlie'],
        '나이': [30, 25, 35],
        '평균 점수': [85.5, 92.0, 78.5]}

df = pd.DataFrame(data)

# 데이터 유형을 호환 가능한 형태로 변환 후 연산
result = df['나이'] + df['평균 점수'].astype(int)

상황 3: 데이터프레임과 다른 데이터 유형 객체 간 연산 시 TypeError

import pandas as pd

data = {'이름': ['Alice', 'Bob', 'Charlie'],
        '나이': [30, 25, 35]}

df = pd.DataFrame(data)

# 데이터프레임과 정수를 더하려고 시도하여 TypeError 발생
result = df + 5

이 경우, 데이터프레임과 정수를 직접 더하려고 시도하여 TypeError가 발생합니다.

해결 방법 3: 데이터프레임과 같은 데이터 유형 객체를 사용

데이터프레임과 같은 데이터 유형 객체를 사용하여 연산하세요.

import pandas as pd

data = {'이름': ['Alice', 'Bob', 'Charlie'],
        '나이': [30, 25, 35]}

df = pd.DataFrame(data)

# 데이터프레임과 같은 데이터 유형 객체를 사용하여 연산
result = df + pd.DataFrame([5, 5, 5], columns=['나이'])

TypeError는 데이터 유형이 호환되지 않을 때 발생하는 오류입니다. 따라서 데이터 유형을 변환하거나 호환 가능한 데이터 유형 객체를 사용하여 연산을 수행하여 이 오류를 해결할 수 있습니다.

반응형