데이터 분석은 column과 index로 이뤄진 DataFrame을 통해 feature과 target을 선정하고, 목표를 이뤄나가는 과정이다.
그렇기에, DataFrame을 위한 Pandas를 얼마나 잘 다루는지가 분석, 전처리의 기본이 될 것이다.
● Pandas 란?
DataFrame을 위한 라이브러리. 데이터 분석 틀의 가장 기본으로, 파이썬과 뗄 수 없는 관계
숫자 테이블과 시계열을 조작하기 위한 데이터 구조와 연산을 제공하며, 팬더가 아닌 "패널 데이터"라는 계량 경제학 용어인 용어에서 파생되었다고 한다.
import pandas as pd
너무나도 많이 마주칠 구문이다. 파이썬 구동과 함께 항상 적어두자.
원래는 pandas를 정리하려는 오만방자한 생각을 했었다. 잘 몰랐으니까... 하지만, 배우면 배울수록 블로그만으로는 정리할 수 없다는 생각만 든다. (물론 numpy도 마찬가지겠지만, DX에서는 비교적 중요도가 낮으니 그러려니 하자...)
이 블로그 페이지는 데이터 검색 이전의 pandas 사용법 기초를 정리하는 페이지로만 남겨두고, 헷갈릴때마다 찾아오는게 좋을 것 같다.
- csv나 xlsx파일로 저장됨. 한번 변경되면 다시 바꾸기 힘들기 때문에 inplace = T or F 파라미터를 가지고 있다.
- 데이터, 열 이름(columns), 인덱스 이름(index = 중복되면 안됨) 이 필요하다.
- import pandas as pd의 형태로 불러주며, import numpy as np와 짝꿍이라고 생각하는게 편하다.
- 딕셔너리로 데이터프레임 만들면 key가 columns, value가 데이터가 된다. index만 새로 추가해주면 됨.
- pd.DataFrame( data, columns, index )의 형태로 데이터프레임 제작 가능 !!!columns에 s붙으니 유의!!!
- pd.head() = 앞의 5개 index들만 보여줌
- pd.read_csv(‘csv파일’) = csv파일을 불러온다, pd.read_excel(‘xlsx파일’) = xlsx파일을 불러온다.
#이때, index_col = ‘컬럼명’ 입력하면, 해당 컬럼을 index값으로 가져올 수 있다.
- df.to_csv(‘csv파일’) = csv파일로 저장한다. df.to_excel(‘excel파일’) = excel파일로 저장한다.
- df.drop(‘없애줄 데이터 제목’ , ’axis = index or column’ , ’inplace = T or F)로 데이터를 삭제시킬 수 있다.
- df.drop([index번호들], axis = 0, inplace = True) 사용해서 특정 인덱스 행 데이터 제거 가능.
- df.duplicated() = 중복 여부 확인,
- df.drop_duplicates(inplace = True, keep = ‘first’, subset = [‘컬럼명’])
==> 중복값 처리(유니크한 키만 남기고 나머지는 제거)
keep = 해당 row의 데이터가 모두 똑같을 때 제거됨.
subset = 해당 컬럼값이 같으면, 나머지 데이터가 달라도 제거됨.
- df.info() = 데이터프레임 정보를 가져온다
- df.shape = 튜플 형태로 행과 열을 뽑아준다.
- df.index, df.values, df.columns = 인덱스, 값, 컬럼 확인
- df.dtypes = column별 자료들을 확인한다
- df.info() = column의 자료형, 값 개수 확인
- df.describe() = 기술 통계를 확인한다(정리, 요약, 해석, 표현의 특성)
개수count, 평균mean, 표준편차std, 최솟값min, 사분위값들, 최댓값max 을 표시한다.
- df[‘column명’].describe()를 통해 일부 열에 대해서만 기술 통계 확인이 가능하다.
- df.sort_values(by = ‘기준으로 할 column’, ascending = True of False)으로 오름차(True), 내림차 정렬이 가능하다.
- df = 고유값을 확인하며, 시리즈로 나타내준다.([] 한번 더 씌워주면 column이 1개인 df제작 가능)
- df.unique() = 고유값을 df형식이 아닌 array 형식으로 보여준다.
- df.value_counts(dropna = True or False) = 고유값 개수를 확인 가능하며
dropna는 nan제외할 것인지 (True가 삭제, False가 보유
- df.mode() = 최빈값(가장 많이 나온 값) 확인
- df.max() = 최댓값 확인
- df.mean() = 평균값 확인
- df.median() = 중앙값 확인
- df.value_counts() = 해당 컬럼이 가진 값들의 개수 확인
- df가 너무 길어서 안보이면??
df의 column이 25개 이상이 넘어가면 ...으로 처리되어 보이지 않는다. 이를 해결해보자.
pd.set_option(‘display.max_rows’, 10000) # 보이는 maxrow값을 10000으로 설정
pd.set_option(‘display.max_columns’, 100000) # 보이는 max_column값을 10000으로 설정
- 기존 열 중 하나를 index화 하기
id나 입사번호처럼 unique한 값들을 가지는 column은 index로 사용하기 좋다. 이를 위한 코딩방법을 알아보자.
df.set_index(‘column_name’, inplace = True) #inplace = 해당 df에 바로 적용시킴.
df.index.name = None # index가 된 column이 column시절 이름을 가지고 있으므로, index이름 삭제
# 위의 작업으로 진행된 index가 마음에 들지 않으면 바꿔야 한다. 이때, index값들을 버릴건지 아닐건지 결정
df.reset_index(drop = True or False) #인덱스를 초기화 시키는데, True면 index값을 버리고, False면 column으로되돌린다.
# drop = False로 되돌아간 index는 'index'라는 column명을 가지기 때문에
df.rename(columns = {‘index’:’바꿔줄 column명’}, inplace = True) #이를 통해 변경을 진행한다.
'AIVLE_School' 카테고리의 다른 글
에이블스쿨 DX커리큘럼 - 데이터 전처리 (0) | 2023.03.28 |
---|---|
에이블스쿨 DX커리큘럼 - DataFrame 수정 (0) | 2023.03.28 |
에이블스쿨 DX커리큘럼 - 1주차 정리 (0) | 2023.02.21 |
에이블스쿨 (DX) 사전수업 - 데이터사이언스란? (0) | 2023.02.21 |
AIVLE SCHOOL - DX커리큘럼 합격 후기(뒷뒷뒷북.ver) (2) | 2023.02.21 |