에러해결/PYTHON

TypeError: bad operand type for unary ~: 'float'

Zziii 2023. 7. 19. 09:46
728x90
반응형

TypeError: bad operand type for unary ~: 'float'

TypeError: bad operand type for unary ~: 'float' 오류는

부정 연산자 ~가 부동 소수점 수 (float)에 대해 사용되어 잘못된 피연산자 타입이라는 것을 나타낸다.

부정 연산자는 정수형 (int)에 대해서만 사용할 수 있다.

오류가 발생하는 경우를 보완하려면 부정 연산자를 정수형으로 사용해야 한다.

예를 들어, ~ 연산자를 사용하여 비트 단위의 보수를 계산하려면 정수형을 사용해야 한다.

부동 소수점 수에 대해 부정 연산을 수행하려는 경우에는 다른 방법을 사용해야 한다.

예를 들어, 부동 소수점 수를 비교하거나 조건을 확인하기 위해서는 비교 연산자(<, >, <=, >=, ==, !=)를 사용해야 한다.

아래는 위 에러가 발생할 수 있는 예시와 그에 대한 수정 코드이다.

import pandas as pd

# 샘플 데이터프레임 생성
df = pd.DataFrame({'A': [1.5, 2.7, 3.8, 4.1, 5.3]})

# 데이터프레임의 열에 부정 연산 적용
df['B'] = ~df['A']  # 오류 발생

print(df)

올바르게 수정된 코드

import pandas as pd

# 샘플 데이터프레임 생성
df = pd.DataFrame({'A': [1.5, 2.7, 3.8, 4.1, 5.3]})

# 데이터프레임의 열에 부정 연산 적용 (수정)
df['B'] = df['A'].apply(lambda x: int(~x))  # 부동 소수점 수를 정수로 변환한 후 부정 연산 적용

print(df)
728x90
반응형