IT_developers

Python 데이터 분석(주피터노트북) - Pandas(DataFrame) 본문

Python

Python 데이터 분석(주피터노트북) - Pandas(DataFrame)

developers developing 2022. 10. 22. 12:00

Pandas

  • 개념
    • 고수준의 자료구조와 파이썬에서 빠르고 쉽게 사용할 수 있는 데이터 분석 도구 포함
    • 테이블 형 데이터를 다룰 수 있는 다양한 기능을 가진 라이브러리
    • 파이썬 데이터 분석을 위해 기본적으로 사용하는 라이브러리임
    • row data를 데이터 분석 전 과정을 위해 사용할 수 있도록 변환하는 데이터 전처리에도 많이 사용됨
  • 기능
    • 인 메모리 데이터 구조를 가지며 여러 파일 형식 데이터를 읽고 쓰기 위한 도구
    • 데이터 정렬, 손실 데이터를 통합 처리
    • 데이터 셋을 reshaping, 피벗
    • 라벨 기반 슬라이싱, 멀티인덱싱 제공
    • 데이터 셋 merge, join 하기 편함
    • 다양한 시계열 데이터 처리 가능
  • 데이터 구조
    • 시리즈(Series) : 라벨 표시된 1차원의 동일 형태 배열
    • 데이터 프레임(DataFrame) : 동일하지 않은 형태의 열을 가짐, 라벨 표시된 2차원의 크기 변동이 가능한 테이블 형 구조 
  • 데이터 타입
    • pandas 데이터 타입은 파이썬과 다름
      • dtype 으로 불리우며, 주요 데이터 타입은 다음과 같음
        • object 는 파이썬의 str 또는 혼용 데이터 타입 (문자열)
        • int64 는 파이썬의 int (정수)
        • float64 는 파이썬의 float (부동소숫점)
        • bool 는 파이썬의 bool (True 또는 False 값을 가지는 boolean)
        • 이외에 datetime64 (날짜/시간), timedelta[ns] (두 datatime64 간의 차) 도 활용됨
  • 라이브러리 로드 : import pandas as pd

 

DataFrame

  • 테이블형(2차원) 데이터
  • 데이터 분석/머신 러닝에서 데이터 처리를 위해 주로 사용됨
  • 엑셀/csv와 같이 데이터가 row, column으로 구성
  • Columns, Index, Data
  • pd.DataFrame(data=None,index: Union[Collection, NoneType] = None, columns: Union[Collection, NoneType] = None, dtype: Union[str, numpy.dtype, ForwardRef('ExtensionDtype'), NoneType] = None, copy: bool = False)
  • 설명 및 예제 확인

 

 

1. 생성

1) 딕셔너리

 

※ index 넣어서 생성

2) 이차원 리스트로 생성

3) csv 파일로 생성

데이터 읽어 올때 read 쓴 후 tab으로 자동 완성 가능

※ 파일 읽을 때 오류가 날 경우 : 인코딩이 필요

  • UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 0: invalid start byte

 

※ 인코딩 후

4) excel 파일로 생성

 

2. 조회

3. 삭제

  • 삭제는 해당 dataframe에 적용을 하지 않으면 반영 안됨
  • 직접 반영을 위해 inplace=True 사용/ df에 직접 변경을 원하지 않으면 새로운 변수에 담아서 사용하기

1) drop()

※ 컬럼을 삭제할 때 오류

  • KeyError: "['age'] not found in axis" ==> 축을 지정하지 않음

오류 수정 후

 

3. 수정

  • 수정는 해당 dataframe에 적용을 하지 않으면 반영 안됨
  • 직접 반영을 위해 inplace=True 사용/ df에 직접 변경을 원하지 않으면 새로운 변수에 담아서 사용하기

1) 컬럼명 수정

2) 인덱스 수정

3) 컬럼추가

4) 행 추가

Comments