본문 바로가기

Study/class note

python / 판다스 모듈

025 판다스 모듈 이해하기

판다스(pandas)란? 1. 데이터 분석을 위한 파이썬 모듈

                         2. 판다스는 dataframe이라는 기본 자료구조를 사용

                            (dataframe은 오라클의 table과 유사함)

예제. emp2.csv를 판다스의 dataframe으로 생성하시오.

import pandas as pd       # pd는 별칭

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

엑셀이나 csv파일의 데이터를 빠른 속도로 검색할 수 있게 만든 판다스 모듈을 import하고 read_csv함수로 emp2.csv를 읽어옴. 그리고 emp에 담음. 

emp는 판다스 dataframe이 됨. 일종의 오라클 table 개념으로 보면 됨.

 

예제. 사원 데이터프레임에서 이름과 월급을 출력하시오.

-- SQL
select ename, sal
 from emp;
# pandas 문법 : emp[보고싶은 컬럼명 리스트][검색조건]
emp[['ename','sal']]

# 주피터 노트북은 한 번 import하면 dataframe이 살아있기 때문에 그냥 emp[['ename','sal']]만 쳐도 됨.


# spyder에서 실행할 때
import pandas as pd      

emp = pd.read_csv("c:\\data\\emp2.csv")
print(emp)
#%%             # '#%%'은 위의 코드와 아래 코드를 구분시켜서 실행시킴.emp dataframe은 살아있음.
print(emp[['ename','sal']]

예제. 월급이 3000이상인 사원들의 이름과 월급을 출력하시오.

emp[['ename','sal']][emp['sal'] >= 3000]
                    # int()로 감쌀 필요 없음. 알아서 검색 됨.

문제97. 직업이 SALESMAN인 사원들의 이름과 직업을 출력하시오.

emp[['ename','job']][emp['job'] == 'SALESMAN']

# 파이썬 판다스는 컬럼명 대소문자를 구분함.

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

emp[['ename','sal','deptno']][emp['deptno'] == 20]

문제99. 직업이 SALESMAN이고 월급이 1000 이상인 사원들의 이름, 월급, 직업을 출력하시오.

emp[['ename','sal','job']] [(emp['job']=='SALESMAN') & (emp['sal']>=1000)]
                            # & 작성 시, 괄호 써 줘야함

판다스에서는 and가 &, or는 | 임.

 

문제100. mtcars.csv에서 qsec가 2.0이상인 레코드만 출력하시오(행전체 출력)

import pandas as pd

mtcars = pd.read_csv("c:\\data\\mtcars.csv")
mtcars [mtcars['qsec'] >= 2.0]

# 행 전체 출력시 앞에 [보고싶은 리스트] 없애고 [검색조건]만 주면 됨.

 

 

 

반응형