728x90
728x90
or 연산자와 | 연산자의 차이
들어가며
- 파이썬(Python)에서 @or@ 연산자와 @|@ 연산자의 차이에 대해 정리해본다.
- @or@ 연산자와 @|@ 연산자 모두 논리 연산자(Logical Operator)이지만, 사용 목적과 동작 방식에 차이가 있다.
@or@ 연산자
- 유형 : 논리 연산자
- 논리적 OR 연산을 수행하여, 두 피연산자 중 하나라도 @True@일 경우 @True@를 반환한다.
- 단축 평가(Short-Circuit Evaluation) : 첫 번째 피연산자가 @True@이면 두 번째 피연산자는 평가되지 않는다.
- 피연산자 타입 : @bool@ 또는 @bool@로 평가될 수 있는 평가식 (거의 모든 파이썬 객체)
- 반환값 : @True@ 또는 @False@
@|@ 연산자
- 유형 : 비트 연산자
- 비트 단위 OR 연산을 수행하여 두 피연산자의 각 비트를 비교하여 하나라도 1이면 1을 반환한다.
- 피연산자 타입 : 정수형(@int@) 또는 비트 연산을 지원하는 객체(@numpy@ Array, @pandas@ Series)
- @numpy@의 배열(Array)과 @pandas@의 시리즈(Series) 객체에서는 @or@ 연산자가 아닌 @|@ 연산자를 사용한다!
- 반환값 : 피연산자와 동일한 타입의 객체 (각 비트의 OR 결과)
참고
- 다음과 같이 @pandas@의 데이터프레임(또는 시리즈)을 사용하여 논리 연산을 할 때는 @or@ 연산자가 아닌 @|@ 연산자를 사용한다.
import pandas as pd
import numpy as np
df = pd.read_csv('./datasets/P210203.csv')
upper = np.mean(df['charges']) + 1.5 * np.std(df['charges'])
lower = np.mean(df['charges']) - 1.5 * np.std(df['charges'])
range = (df['charges'] >= upper) | (df['charges'] <= lower) # or 연산자가 아닌 | 연산자 사용
result = df[range].sum()
print(result)
728x90
728x90
'Programming > Python' 카테고리의 다른 글
[Python] Pyinstaller로 패키징할 때 환경 변수 파일(.env) 인식 안되는 문제 해결 방법 (0) | 2024.10.30 |
---|---|
[Python] 환경 변수 파일(.env) 다루는 방법 (0) | 2024.09.27 |
[Python] try-except 문 사용할 때 에러 발생 시, 전체 에러 정보 표시 방법 (2) | 2024.09.07 |
[Python] 데이터 전처리 할 때 결측값 제거 방법 (1) | 2024.06.21 |
[Python] self (0) | 2023.11.29 |
[Python] ORM(Object Relational Mapping) 라이브러리 사용해보기 (SQLAlchemy) (0) | 2023.11.14 |
[Python] HTML 코드를 이미지로 변환하는 방법 (Html2Image) (0) | 2023.11.06 |
[Python] 파이썬을 이용하여 텔레그램(Telegram) 메시지 보내는 방법 (0) | 2023.11.06 |