데이터프레임이란?
- Pandas 사용 목적이 데이터프레임을 사용하기 위함.
- 보통 csv, 엑셀 파일 또는 DB에서 읽어 옴.
1. 데이터 프레임
(1) 라이브러리 불러오기 (**라이브러리 숙지 필수)
import pandas as pd
import numpy as np
import matplotlib.pyplot as alt
import seaborn as sns
# matplotlib.pyplot과 seaborn 모두 시각화를 위한 라이브러리로,
# matplotlib.pyplot은 classical 하지만 손이 많이 가고 (수동),
# seaborn은 다루기 좀 더 쉬운 느낌이다. (자동)
(2) 리스트로 데이터프레임 만들기
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, dates, names)
# data=stock,index=dates, columns=names
df.head() # head(n)을 작성하면 상위 n번째까지 보여주며,
# 아무것도 안넣을 경우, 디폴트는 5이다. (상위 5개)
# 필요하면 인덱스를 별도로 지정할 수 있다.
# 딕셔너리 만들기 (Keys, Values)
cust = {'Name': ['Gildong', 'Sarang', 'Jiemae', 'Yeoin'],
'Level': ['Gold', 'Bronze', 'Silver', 'Gold'],
'Score': [56000, 23000, 44000, 52000]}
# 데이터프레임 만들기(인덱스 지정함)
df = pd.DataFrame(cust, index=['C01', 'C02', 'C03', 'C04'])
# 확인
2. CSV 파일 읽어오기 read_csv()
더보기
[주요옵션]
- sep: 구분자 지정(기본값 = 콤마)
- header: 헤더가 될 행 번호 지정(기본값 = 0)
- index_col: 인덱스 열 지정(기본값 = False)
- names: 열 이름으로 사용할 문자열 리스트
- encoding: 인코딩 방식을 지정
※ 참고
한글이 포함된 파일을 읽을 때 다음과 같은 encoding 오류가 발생하면 encoding='CP949'로 지정
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb1 in position 0: invalid start byte
# 데이터 읽어오기
path = '경로, 혹은 디렉토리'
pop = pd.read_csv(path)
# 상위 10행만 확인
pop.head(10)
3. 인덱스 설정
# 기존 열 중 하나를 인덱스로 설정(1)
pop.set_index('year')
pop.head()
# pop = pop.set_index('year') 처럼 반환한 값을 pop에 반영하지 않아서, 실제 데이터프레임에 반영되진 않음.
# 기존 열 중 하나를 인덱스로 설정(2)
pop = pop.set_index('year')
pop.set_index('year', inplace=True)
# 인덱스 이름 삭제
pop.index.name = None
# 인덱스 초기화
pop.reset_index()
# 여기서 reset_index(drop=False)가 디폴트값으로,
# reset_index(drop=False)는 해당 열을 일반열로 가져오지만,
# reset_index(drop=True)는 해당 열을 버린다.
# 열 이름 변경
pop = pop.rename(columns={'index':'year'})
'파이썬 > 데이터 다듬기' 카테고리의 다른 글
[240920] 데이터다듬기#6 - 판다스 데이터프레임 변경 (2) (0) | 2024.09.21 |
---|---|
[240920] 데이터다듬기 #5 판다스 데이터프레임 변경(1) (1) | 2024.09.21 |
[240913] 데이터다듬기#4 - 판다스 데이터프레임 집계 (0) | 2024.09.13 |
[240913] 데이터다듬기#3 - 판다스 데이터프레임 조회 (1) | 2024.09.13 |
[240912] 데이터 다듬기 #1 Numpy(넘파이) (2) | 2024.09.12 |