1. Pandas란?
데이터 분석에 관련된 기능을 제공하는 파이썬 라이브러리입니다. 큰 데이터를 indexing, slicing, sorting등 빠르게 처리합니다. 외부 데이터 csv, txt, excel등의 데이터도 처리 할 수 있습니다. pip install pandas를 이용해 설치할 수 있습니다.
colab에서는 import하여 사용합니다.
series: pandas를 구성하는 1차원 자료형입니다. 시퀀스와 numpy배열 모두 사용 가능합니다.
# pandas
import pandas as pd
import numpy as np
data = pd.Series([1,2,3,4])
data1 = pd.Series(np.array([1,2,3,4]))
data
2. Series
시리즈는 1차원 배열이지만 1열을 index로 2열이 values로 구분지어져 있습니다.
- 연산 가능(인덱스가 같은 것끼리 연산)
- mean: 평균
- fillna(n): NaN(결측데이터)를 n값으로 처리(결측 데이터. null과 다르게 정의되지 않은 값으로 하나의 값으로 인식 됌)
- std: 표준편차
- describe: 통계정보
3. DataFrame
시리즈는 1차원 자료형이었다면, DataFrame은 2차원 데이터 자료형입니다. Series자료형을 테이블 형태로 표현합니다. Series데이터가 뭉쳐있다고 볼 수 있습니다. pandas 모듈에서 Sereis와 DataFrame을 사용하는 from pandas importSeries, DataFrame 구문을 자주 사용합니다.
DataFrame은 List, Dict를 활용하여 생성할 수도 있고 index(행)와 column(열)명을 설정해 줄 수 있습니다. Dict로 생성하면 key값이 colum명이 됩니다.
from pandas import Series, DataFrame
# data = DataFrame([[1,2],[3,4],[5,6]])
data = DataFrame.from_dict({'서울':[1,2,3],'부산':[4,5,6]})
# # data = DataFrame([[1,2],[3,4],[5,6]],columns=['서울','부산'], index=[1,2,3])
data
3.1. 특정한 컬럼 가져오기
특정한 컬럼명의 데이터들을 가져와야하는 경우가 많습니다. 변수명.컬럼명으로 데이터를 조회할 수 있습니다. data.List컬럼명으로 여러개의 컬럼 데이터를 조회할 수 있습니다. 변수명.index 혹은 변수명.columns를 이용하여 인덱스명과 컬럼명을 변경할 수도 있습니다.
data = DataFrame.from_dict({'서울':[1,2,3],'부산':[4,5,6]})
data[['서울','부산']]
data.서울 # 컬럼명을 변수처럼 사용
3.2. index로 가져오기
- 변수명.loc[인덱스이름] : 데이터 조회
- 변수명.iloc[인덱스번호]
- 변수명.iloc[시작:끝] : 인덱스 슬라이싱
인덱스와 컬럼을 동시에 사용하여 혹은 조건을 주어 데이터를 가져오는 것도 가능합니다.
data.iloc[0:2,1] # 0~2 인덱스의 1컬럼 데이터
data.loc[1,'서울']
data[data['서울']>1] # 조건. 전체데이터에서 서울시의 데이터 값이 1보다 큰 행을 모두 가져오기
4. DataFrame 합치기
흩어져있는 컬럼들을 모아서 합쳐야 할 경우가 많습니다. 이럴때는 merge(left,right,how,on)을 사용합니다.
- left: 합칠 왼쪽 DataFrame
- right: 합칠 오른쪽 DataFrame
- how: 합치는 방법
- on: 두 데이터를 합칠 기준 컬럼(how에서 inner, left, right일 시)
how 옵션
- Inner: left,right에서 둘다 존재하는 컬럼 데이터만 합침
- left: left데이터 프레임 기준으로 합침
- right: right데이터 프레임 기준으로 합침
- outher: left,right의 모든 데이터 합침(빈 데이터는 NaN)
인덱스를 기준으로 merge도 가능합니다.
DataFrame끼리의 단순한 연산도 가능합니다.
5. DataFrame 파일처리
데이터 프레임을 scv, 엑셀, json, txt 등 파일로 처리합니다. 특히 csv를 자주 사용합니다.
csv 파일 : 특정 구분자로 나누어진 파일
5.1. csv 불러오기
pd.read_csv(FilePath, sep, header, names, index_col, skiprows, nrows, encoding)
- FilePath: 파일경로
- sep: 구분자
- header: 컬럼명(없을경우 none)
- names: header가 없을시 컬럼명 입력 가능
- skiporws: 파일에서 행을 건너뛰고 불러옴
- index_col: 컬럼을 index로 사용
- nrows: 입력한 개수만큼의 데이터만 읽음
- encoding: 인코딩 타입 입력. 한글일 경우 ‘CP949’
5.2. 명령어
- del 명령어: 파일을 불러왔을 때 필요없는 컬럼이 있다면 del data[컬럼명]으로 해당 컬럼을 지울 수 있음
- head(n): n개의 인덱스만 불러오는 함수
- describe(): 통계요약 함수
- sum(): 합계
- mean(): 평균
- std(): 표준편차
- var(): 분산
- count(): 개수
- corr(): 상관계수
- min()
- max()
- info(): 데이터타입 확인
- to_csv(): 해당 이름으로 csv파일로 저장
- sort_values(): 정렬
- ascending: true: 오름차순, false: 내림차순
- inplace: true면 정렬한 값을 DataFrame에 바로 반영
- by: 정렬할 기준 변수
- axis: 0이면 행정렬 1이면 열정렬
- sort_index(): index명 기준으로 정렬
댓글남기기