[AIVLE SCHOOL] 데이터 다듬기(2) - 데이터프레임

춤추는 머쉬룸·2024년 9월 12일

AIVLE SCHOOL 6기

목록 보기
16/80
post-thumbnail

9/12 3, 4 세션

A. 데이터프레임

  • 일반적으로 접하게 되는 테이블 형태, 엑셀 형태
  • 직접 만들 수 있으나 보통은 csv 파일, 엑셀 파일 또는 DB에서 읽어옴
  • 여러 자료형을 가질 수 있음

A-1. 데이터 프레임 형태

  • 데이터프레임은 인덱스(=행 이름)와 열 이름이 있고 없고에 따라 다른 형태를 갖음
  • 인덱스 : 행을 특정지어 조회할 때, 열 이름은 열을 특정지어 조회할 때 사용하는 정보임
  • 열 이름을 지정하지 않으면 무슨 뜻인지 이해하기 어려움

A-2. 데이터 프레임 만들기

  • pd.DataFrame() 함수 사용
  • import pandas as pd
  • 데이터, 열 이름, 인덱스 이름 필요

TIP! 필수 라이브러리

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt #시각화
import seaborn as sns #시각화

A-2-1) DataFrame()의 파라미터

  • data= : 넣을 데이터(리스트, 배열 등)
  • index= : 인덱스 지정
  • columns= : 열 이름 지정 (s 붙이기 중요!!!)

A-2-2) head()의 파라미터

  • 괄호 안에 숫자로 몇 행까지 출력할 지 지정 가능. 전체 출력 하려면 쓰지 않으면 됨
  • 디폴트(생략 하면) : 5
  • head() 의 반대는 tail()
# 1차원 리스트 만들기
stock = [94500, 92100, 92200, 92300]

# 데이터프레임 만들기
df = pd.DataFrame(data=stock)

# 확인
df.head()

A-3. 딕셔너리로 데이터프레임 만들기

  • 딕셔너리의 키가 열 이름으로 지정됨
  • 따로 columns 로 지정할 필요 없음
  • 인덱스는 따로 지정 가능

B. CSV 파일 읽어오기

  • read_csv() 함수 사용
  • 문자열로 path 지정 (로컬은 상대경로 가능)
  • 한글이 포함된 파일을 읽을 때 encoding 오류 발생하면 encoding='CP949'로 지정
# 로컬 데이터 읽어오기
path = 'tips.csv'
tip = pd.read_csv(path)

# 상위 10행만 확인
tip.head(10)

read_csv() 함수 파라미터

  • sep: 구분자 지정(기본값 = 콤마)
  • header: 헤더가 될 행 번호 지정(기본값 = 0)
  • index_col: 인덱스 열 지정(기본값 = False)
  • names: 열 이름으로 사용할 문자열 리스트
  • encoding: 인코딩 방식을 지정

B-1. 인덱스 다시 설정

B-1-1) 인덱스 설정

  • set_index(인덱스가 될 열 이름) 메서드
  • 변경이 아니라 결과를 반환한다
  • 만약 재선언 없이 변경하고 싶다면 set_index('열 이름', inplace=True) 로 설정
  • 이 경우, 반환하는 게 없어서 출력하면 None 이 뜬다

TIP! 데이터프레임 메서드의 inplace=True 매개변수
결과값 대로 기존 내용을 변경한다

B-1-2) 인덱스이름 삭제

  • 인덱스 이름은 열 이름이 인덱스로 설정 된 후에는 필요가 없다
# 인덱스 이름 삭제
pop.index.name = None

B-1-3) 인덱스 초기화

  • reset_index() 메서드
  • drop= 파라미터 : True 면 기존 인덱스를 버리고, False 면 기존 인덱스를 일반 열로 가져감
  • inplace= 파라미터 : True 면 내용을 변경

B-1-4) 열 이름 변경

  • rename(columns={기존, 바꿀 이름}) 메서드
  • 쌍의 형태여야 해서 딕셔너리 사용

0개의 댓글