[Python] Pandas

Jeonghyun·2022년 9월 21일
0

Python 이론

목록 보기
8/9

Panel data
파이썬의 데이터 처리의 표준인 라이브러리
액셀과 같은 기능

  • 데이터 처리 및 통계 분석을 위해 사용
import pandas as pd
df_data = pd.read_csv(data_url, sep = '\s', header = None)  # csv 타입 데이터 로드, 구분자, column
df_data.columns = [  ]  # column의 header 지정
df_data.head()  # 처음 다섯줄, n = 으로 줄 지정 가능

DataFrame & Series

from pandas import Series, DataFrame

DataFrame
: data table 전체를 포함하는 object
index와 column 모두 지정해야함(numpy array)

raw_data = {'one':[1,2,3,4,5], 'two':[2,4,6,8],'three':[3,6,9]}  # column_name : data
pd.DataFrame(raw_data, columns = ['one','two','three'])  # 기존에 없던 column 추가도 가능

# index location / index 이름
df.loc[1] 
# index position / index number
df["age"].iloc[1:] 

# column에 새로운 데이터 할당
df.debt = df.age > 20 # debt라는 columns에 새로운 값 추가

# tranpose
df.T

# 값 출력 (array type)
df.values 

# csv 변환
df.to_csv()

Series
: DataFrame 중 하나의 column에 해당하는 데이터의 모음 object

Series(data = list_data, index = list_name, dtype=np.flout32, name="data_name")
# data와 index의 이름 지정, data type 설정, series 이름 설정
obj.values # 값 리스트만 가져옴
obj.index # index 리스트만 가져옴

column 삭제

del : 메모리 주소를 삭제 del df["column_name"]
drop : 기존 데이터 변화 x, 출력만 다름 df.drop("column_name", axis= 1)

pandas built-in module

  • describe() : numeric 데이터의 요약 정보를 보여줌
  • unique : series data의 유일한 값을 리스트로 반환
  • sum, sub, mean, min, max, count, median, mad, var 등 : column, row 별 연산 지원
  • isnull : null 값인지
  • sort_values : column 기준 데이터 정렬
  • correlation covariance : 상관계수, 공분산

Groupby

  • 기존의 데이터에서 같은 종류의 데이터를 묶음
  • split → apply → combine 과정을 거쳐 연산
df.groupby("묶음의 기준이 되는 컬럼")["적용받는 컬럼"].sum() <- (적용받는 연산)
# 한 개 이상의 column도 가능

hierarchical index : 두 개의 column으로 groupby 했을 때 두 개의 index가 생성됨
unstack() : group으로 묶어진 것을 matrix로 전환
stack() : unstack 반대
reset_index() : multi index를 하나로 풀어줌
sort_index(level= ) : index 기준으로 sort

grouped

groupby로 나눠진 상태를 저장

grouped = df.groupby("컬럼 이름")
  • aggregation : 요약된 통계 정보 추출
  • transformation : 개별 데이터의 정보를 변환, lambda 활용
  • filtration : 특정 정보를 제거하여 보여주는 필터링





[부스트캠프 AI Tech] Week 1 - Day 3

0개의 댓글