[KT] AIVLE SCHOOL 3일차
데이터프레임
- 데이터를 처리, 조회, 분석하는 가장 효율적인 방법이 데이터프레임을 사용하는 것
- 일반적으로 접하게 되는 테이블 또는 엑셀 형태
- 직접 만들 수 이쓰나 보통은 csv 파일, 엑셀 파일 또는 DB에서 읽어옴
- 데이터 분석에서 가장 중요한 데이터 구조
- 형태
- 데이터프레임은 인덱스(=행 이름)와 열 이름이 있고 없고에 따라 다른 형태를 가짐
- 인덱스란 행을 특정지어 조회할 때, 열 이름은 열을 특정지어 조회할 때 사용하는 정보
데이터프레임 생성
- 데이터프레임을 다루기 위해서는 Pandas 라이브러리를 불러와야 함
# pandas 라이브러리를 불러오고 pd로 별칭 지정 import pandas as pd
- pd.DataFrame() 함수를 사용해 데이터프레임을 만들 수 있음
# 리스트 만들기 stock = [[94500, 92100, 92200, 92300], [96500, 93200, 95900, 94300], [93400, 91900, 93400, 92100], [94200, 92100, 94100, 92400], [94500, 92500, 94300, 92600]] dates = ['2019-02-15', '2019-02-16', '2019-02-17', '2019-02-18', '2019-02-19'] names = ['High', 'Low', 'Open', 'Close'] # 데이터프레임 만들기 df = pd.DataFrame(stock, index=dates, columns=names) # 확인 df.head()
- 대부분 리스트, 딕셔너리, Numpy 배열로부터 데이터프레임을 생성
- 딕셔너리로 데이터프레임을 만들면 딕셔너리의 키가 열 이름이 됨
- 인덱스를 지정하지 않으면 행 번호가 인덱스가 됨
- adereh데이터프레임을 만들기 위해서는 데이터, 열 이름, 인덱스 이름이 필요함
- 데이터프레임을 만들 때 열 이름을 직접 지정하거나 나중에 변경할 수 있음
- 열 이름을 지정하지 않으면 열 번호에 기반한 정수가 열 이름이 됨
- 인덱스 이름을 지정하지 않으면 행 번호에 기반한 정수가 인덱스 이름이 됨
- 의미 있는 값(대표적으로 날짜)이 인덱스가 되면 분석이 용이
CSV 파일 읽어오기
- CSV 파일을 읽어와 데이터프레임을 만드는 경우가 가장 일반적임
- pandas의 read_csv() 함수를 이용해서 csv 파일의 데이터를 읽어옴
- read_csv() 함수의 주요 옵션
- sep : 구분자 지정(기본값 = 콤마)
- header : 헤더가 될 행 번호 지정(기본값 = 0)
- index_col : 인덱스 열 지정(기본값 = False)
- names : 열 이름으로 사용할 문자열 리스트
- skiprows : 처음 몇 줄을 무시할 것인지 지정, 리스트로 지정 가능
- encoding : 인코딩 방식을 지정 (한글이 포함된 파일을 읽을 때 encoding='CP949'로 지정)
인덱스 설정
- 파일을 읽어올 때 인덱스 열을 지정할 수 있음
- 인덱스 열을 지정하 지 않으면 행 번호에 기반한 정수가 인덱스로 설정됨
- 필요한 경우 일반 열을 인덱스 열로 지정하거나, 행 순서에 기반한 정수값 인덱스로 초기화 할 수 있음
- set_index()
- 파일을 불러온 후에 set_index() 메서드를 사용해 인덱스가 될 열을 설정할 수 있음
- e.g. pop.set_index('year', inplace=True)
- 'year' 열을 인덱스로 설정, inplace=True는 원본객체에 반영한다는 뜻, 지정하지 않으면 반영 X
- 불필요한 인덱스 이름 삭제 : (데이터프레임).index.name = None / e.g. pop.index.name = None
- reset_index()
- 행 번호에 기반한 정수 값으로 인덱스 초기화
- drop = True를 설정하면 기존 인덱스 열을 버림
- drop = False를 설정하면 기존 인덱스 열을 일반 열로 유지함(기본값)
- e.g. pop.reset_index(drop=False, inplace=True) / 인덱스를 초기화, 기존 인덱스 열을 일반 열로 유지
- 열 이름 변경 : pop.rename(columns={'index': 'year'},inplace=True) / pop 데이터프레임의 'index'열을 'year'로 이름 변경
'Data Science > Pandas' 카테고리의 다른 글
[Pandas] 데이터 처리 (4) - 데이터프레임 변경 (0) | 2025.03.30 |
---|---|
[Pandas] 데이터 처리 (3) - 데이터프레임 조회 (0) | 2025.03.30 |
[Pandas] 데이터 처리 (2) - 데이터프레임 탐색 (0) | 2025.03.29 |