본문 바로가기

Study/class note

python / 기타연산자

032 멤버체크 이해하기(in)

in은 어떤 자료에 어떤 값이 있는지 없는지 확인할 때 사용하는 키워드

문법 : 값 in 자료

자료 안에 값이 있으면 True 이고 없으면 False입니다.

var = 'abcdedfhigk'

result = 'd' in var
print(result)     # var 안에 'd'가 존재하므로 True가 출력됨

문제122. 부서번호가 10번, 20번인 사원들의 이름, 월급, 부서번호를 출력하시오.

# 파이썬
import csv

file = open('c:\\data\\emp5.csv')
emp_csv = csv.reader(file)

for i in emp_csv:
    if int(i[7]) in [10,20]:
        print(i[1],i[7])
        

# 판다스
import pandas as pd

emp = pd.read_csv("c:\\data\\emp2.csv")

emp[['ename','deptno']][emp['deptno'].isin([10,20])]

 

ㅁ오라클의 기타 비교 연산자 4가지를 판다스와 비교

오라클 판다스
between ... and ... emp['sal'].between(1000,3000)
in emp['deptno'].isin([10,20])
is null emp['comm'].isnull()
like emp['ename'].apply(lambda x:x[0])

 

문제123. 아래의 SQL을 판다스로 구현하시오.

-- SQL
select ename, sal
 from emp
 where sal between 1000 and 3000;
# 판다스
emp[['ename','sal']][emp['sal'].between(1000,3000)]

문제124. 아래의 SQL을 판다스로 구현하시오.( 판다스에서 not은 '~' 입니다.) 

-- SQL
select ename, sal
 from emp
 where sal between 1000 and 3000;
emp[ ['ename','sal'] ][ ~ emp['sal'].between(1000,3000) ]
                      #####

문제125. 아래의 SQL을 판다스로 구현하시오.

-- SQL
select ename, job
 from emp
 where job not in ('SALESMAN','ANAMLYST');
# 판다스
emp[ ['ename','job'] ][ ~ emp['job'].isin(['SALESMAN','ANALYST']) ]

문제126. 아래의 SQL을 판다스로 구현하시오.

-- SQL
select ename, comm
 from emp
 where comm is not null;
# 판다스
emp[ ['ename','comm'] ][ ~ emp['comm'].isnull() ]

문제127. 아래의 SQL을 판다스로 구현하시오.

-- SQL
select ename
 from emp
 where ename like '%T';
# 판다스
emp[ ['ename'] ][ emp['ename'].apply(lambda x:x[-1] == 'T') ]

 

반응형