-
[Pandas] 03 DataFrame - 개념, 생성, 파일, 불러오기, 메소드코린이 유치원/Pandas 2022. 6. 20. 23:46
01 DataFrame 개요
- 표(테이블 - 행렬)를 다루는 Pandas 클래스
- 데이터베이스의 Table이나 R의 data.frame이나 Excel의 표와 동일한 역할
- 분석할 데이터를 가지는 판다스의 가장 핵심적인 클래스
- 행이름: index, 열이름:column
- 행이름과 열이름은 명시적으로 지정 가능
- 명시적으로 지정하지 않으면 순번을 index, column명으로 사용
- 하나의 행과 하나의 열은 Series로 구성
- 직접 데이터를 넣어 생성하거나 데이터셋을 파일(csv, 엑셀, DB등)로부터 읽어와 생성
- Series는 외부러부터 못 읽어옴
02 DataFrame 생성
- pd.DataFrame(data)
- data
- DataFrame을 구성할 값을 설정
- Series, List, ndarray를 담은 2차원 배열
- 열이름을 key로 값을 value로 저장한은 딕셔너리
- index
- index명으로 사용할 값 배열로 설정
- columns
- 컬럼명으로 사용할 값 배열로 설정
- DataFrame을 구성할 값을 설정
01 직접 생성
딕셔너리 -> DataFrame
import pandas as pd # 딕셔너리 이용해 DataFrame 생성 d = { 'id': ['id-1', 'id-2', 'id-3', 'id-4', 'id-5'], 'Korean': [100, 50, 70, 90, 85], 'Math': [80, 50, 90, 100, 100] } grade = pd.DataFrame(d) # 딕셔너리 DataFrame 변환 grade
2차원 배열 -> DataFrame
list = [ ['my-1', 20, 50], ['my-2', 70, 20], ['my-3', 100, 90], ['my-4', 70, 100], ['my-5', 60, 80], ['my-6', 100, 100], ] grade2 = pd.DdataFrame(list, columns = ['ID', '국어', '수학']) # columns 설정 grade2
02 DataFrame 파일로 저장
- DataFrame객체.to_파일타입()
- DataFrame객체.to_csv(파일경로, sep = ', ', index = True, header = True, encoding)
- 텍스트 파일로 저장
- 파일경로: 저장할 파일경로(경로/파일명)
- sep: 데이터 구분자
- index, header: 인덱스/헤더 저장 여부
- encoding
- 파일인코딩
- 생략시 UTF-8로 저장
- DataFrame객체.to_excel(파일경로, index = True, header = True)
DataFrame -> CSV 파일로 저장
grade.to_csv(save_file_path, index = False) # save_file_path: 파일경로, index명 지정 X grade.to_csv(save_file_path, index = False, header = False) # 컬럼명을 저장 X grade.to_csv(save_file_path, index = False, sep = '\t') # 열 구분자 설정
DataFrame -> xls, pickle, html 파일로 저장
grade.to_excel('grade.xls', index = False) # excel파일로 저장 grade.to_pickle('grade.pkl') # pickle 파일로 저장 grade.to_html('grade.html') # html 파일로 저장
03 파일 읽어오기
csv 파일 등 텍스트 파일로부터 읽어아ㅗ 생성
- pd.read_csv(파일경로, sep = ',', header, index_col, na_values, encoding)
- 파일경로: 읽어올 파일의 경로
- sep
- 데이터 구분자
- 기분값: 숨표
- header = 정수
- 열이름(컬럼이름)으로 사용할 행 지정
- 기본값: 첫번째 행
- None 설정: 첫번째 행부터 데이터로 사용하고 header(컬럼명)은 0부터 자동증가 하는 값 붙임
- index_col = 정수, 컬럼명
- index명으로 사용할 열이름(문자열)이나 열의 순번(정수) 지정
- 생략시 0부터 자동증가하는 값 붙임
- na_values
- 읽어올 데이터셋의 값 중 결측치로 처리할 문자열 지정
- encoding
- 파일 인코딩
- 생략시 운영체제 기본 인코딩 방식
csv파일 불러오기
데이터프레임이름 = pd.read_csv('경로', header = None, # header 행이 없는 것으로 설정 names = ['ID', 'Korean', 'Math']) # 컬럼명 지정
결측치 처리할 값 지정
데이터프레임이름 = pd.read_csv('경로', header = None, # header 행이 없는 것으로 설정 na_values = ['결측치']) # 결측치로 처리할 값 지정
03 DataFrame 메소드
메소드 설명 T 행/열 변경 head(정수)/tail(정수) 데이터 정수 행만큼 조회, 기본값 5 shape, size shape: 행렬의 수 튜플로 리턴, size: 원소 개수 반환 columns/index 열의 이름/index이름을 조회 및 변경 describe() 요약 통계량 제공
수치형: 기술통계값
범주형: 고유값 개수 등 민도수 관련 정보
include, exclude 매개변수로 특정 타입만 선택 가능info() 각 열 별 데이터 타입과 결측치 개수를 조회 isin([값리스트]) 데이터프래임내 각 원소가 값 리스트에 있는 갑솩 같으면 True
다르면 False, 결과를 불린 데이터 프레임으로 반환메소드 설명 count() 열별 결측치를 제외한 원소 개수 min(), max(), sum(), mean(), median(), std(), var(), mode(),
idxmax(), idxmin()열별 기술 통계 값 조회, 결측치가 있을 경우 빼고 계산
최소값, 최대값, 합계, 평균, 중앙값, 표준편차, 분산, 최빈값
최대값 index, 최소값 indexnunique() 열별 고유값 개수 조회 qunatile(q = 분위 수) 열별 분위수 계산, q 생략시 0.5 isnull(), notnull()/ isna(), notna() 열별 결측치 체크
각 원소의 결측치 여부를 series로 변환fillna(반환값) 결측치를 한번에 특정 값으로 변환 dropna() 결측치가 있는 행/열 제거 sort_values(기준열 이름리스트, ascending = True) 전달한 열 값을 기준으로 정렬
ascending = False: 내림차순, True(기본값): 오름차순데이터프레임이름.T # 행과 열 변경 데이터프레임이름.head() # 데이터 정수 행만큼 처음부터 조회 데이터프레임이름.tail() # 데이터 정수 행만큼 뒤에서부터 조회 데이터프레임이름.shape # 데이터수(행수, 열수) 데이터프레임이름.size # 행수 * 열수 데이터프레임이름.info() # DF의 행, 열에 대한 정보 조회' 데이터프레임이름.describe() # 수치형 타입 컬럼의 요약통계량을 반환 데이터프레임이름.describe(include = ['object']) # 문자형 컬럼만 포함 데이터프레임이름.describe(exclude = ['float64']) # 숫자형 컬럼 제외 데이터프레임이름.isnull()
'코린이 유치원 > Pandas' 카테고리의 다른 글
[Pandas] 02 Series - 메소드 (0) 2022.06.20 [Pandas] 01 Series - 개념, 생성, 인덱싱, 슬라이싱 (0) 2022.06.20 - 표(테이블 - 행렬)를 다루는 Pandas 클래스