[23파이썬특강] 2강. 데이터 프레임과 분석 기초
1. 개요
- 이곳에서는 첫째, 데이터 형태 중에서 가장 많이 사용하는 데이터 프레임이 무엇인지를 살펴보고(교재 4장), 둘째, 데이터 프레임을 대상으로 데이터를 다루는 기초적인 방법을 익힌다(교재 5장).
- 실습 코드:
- 실습 데이터: 실습 데이터와 파이썬 코드에서 다음 파일을 워킹디렉터리로 다운로드 받아서 ipynb 파일과 동일한 디렉터리에 둔다.
2. 데이터 프레임
2.1. 데이터 프레임 이해하기
- 데이터 프레임(data frame, df) 형태: 행(row)과 열(column)로 이루어진 사각형 모양의 표
- 데이터 분석에서 “표”의 중요성: [표 / 00:04:39] (생활코딩, 2020-07-29)
- 행(row)
- 개체(instance)
- 관측치(observed value)
- 기록(record)
- 사례(example)
- 경우(case)
- 열(column)
- 특성(feature)
- 속성(attribute)
- 변수(variable)
- field
- 데이터가 크다: 행이 많다 또는 열이 많다.
- 데이터 분석에서는 데이터의 양을 의미하는 행보다, 데이터의 다양성을 의미하는 열이 많은 것이 더 중요
2.2. df 만들기 1: 직접 입력하기
df = pd.DataFrame({'name' : ['김지훈', '이유진', '박동현', '김민지'], 'english' : [90, 80, 60, 70], 'math' : [50, 60, 100, 20]})- (Tip) pd.DataFrame( )의 괄호 속에 딕셔너리 형태로 입력한다.(딕셔너리 - 교재, 418쪽 참조)
-
name english math 0 김지훈 90 50 1 이유진 80 60 2 박동현 60 100 3 김민지 70 20
- df로 분석하기:
- 특정 변수의 값 추출하기:
df['english'] - 변수의 값으로 합계 구하기:
sum(df['english']) - 변수의 값으로 평균 구하기:
sum(df['english']) / 4
- 특정 변수의 값 추출하기:
2.3. df 만들기 2: 외부 데이터 이용하기
- 엑셀 파일 불러오기
df_exam = pd.read_excel('excel_exam.xlsx') - CSV 파일 불러오기
df_csv_exam = pd.read_csv('exam.csv') - CSV 파일로 저장하기
df_midterm.to_csv('output_newdata.csv')
2.4 초보자가 자주하는 실수 (→ 교재 94-95쪽)
3. 데이터 분석 기초
3.1. 데이터 파악하기
- 패키지 로드
import pandas as pd import numpy as np - 데이터 불러오기
mpg = pd.read_csv('mpg.csv') - 데이터 파악하기
mpg.head() # 데이터 앞부분 mpg.tail() # 데이터 뒷부분 mpg.info() # 행, 열 수 mpg.describe() # 요약 통계량 - 사분위 간 범위: 제1 사분위수와 제3 사분위수 간의 거리(Q3-Q1)로, 데이터의 중간 50%에 대한 범위. * 사분위 수
- [사분위수(1) / 00:06:50](TMook, 2018-07-24)
3.2. 함수, 메서드, 어트리뷰트 구분하기
- 내장 함수 : 가장 기본적인 함수로 파이썬에 내장. → 함수명 및 괄호 입력해서 사용. ex) sum(var)
- 패키지 함수 : 패키지를 로드해야 사용. → 패키지명 뒤에 점 찍고 함수명 및 괄호 입력해서 사용. ex) pd.DataFrame({‘x’:[1, 2, 3]})
- 메서드 : ‘변수가 지니고 있는 함수’. 변수명 뒤에 점 찍고 메서드명 및 괄호 입력해서 사용. ex) df.head() = 변수의 자료구조에 따라 사용할 수 있는 메서드가 다르다.
- 어트리뷰트 : ‘변수가 지니고 있는 값’. 변수명 뒤에 점 찍고 어트리뷰트명 입력해서 사용. 괄호가 없다. ex) df.shape ; df.index ; df.columns = 이 역시 변수의 자료구조에 따라 사용할 수 있는 어트리뷰트가 다르다.
3.3. 변수명 바꾸기
- 변수명 바꾸기: df.rename( ) ← 변수명을 이해하기 쉬운 단어로 변경
mpg = mpg.rename(columns = {'manufacturer' : 'company'}) - 파생변수 만들기: 파생변수 = 기존의 변수를 변형해서 만든 변수
mpg['total'] = (mpg['cty'] + mpg['hwy'])/2 # 변수 조합 - 조건문: np.where(조건, 조건 맞을 때 부여할 값, 맞지 않을 때 부여할 값)
mpg['test'] = np.where(mpg['total'] >= 20, 'pass', 'fail') # 조건문 활용 - 빈도 확인하기: value_counts( )
count_test = mpg['test'].value_counts() # 빈도표 만들기 count_test.plot.bar(rot = 0) # 빈도 막대 그래프 만들기 - 중첩 조건문: np.where( ) 여러 번 활용 (→ 교재, 123쪽, 127쪽)
- 메서드 체이닝: 점(.)을 이용해 메서드를 계속 이어서 작성하는 방법(→ 교재, 126쪽)
참고할 유튜브
- 정보의 분산병렬 처리 역사와 챗지피티 시대에 필요한 태도: [ChatGPT로 과제한다는데 어떻게 생각하세요? / 00:13:12](셜록현준, 2023-05-11)
참고 문헌
주석
1)
[chat-GPT4.0: mpg 데이터] (2024-01-07)
Q: mpg 데이터의 규모를 알려주고 변수에 대해 자세히 설명해 줘
A: ChatGPT
mpg 데이터셋은 R 언어에서 사용되는 유명한 데이터셋 중 하나입니다. 이 데이터셋은 1999년과 2008년 사이에 제조된 38종의 자동차에 대한 연비(miles per gallon, MPG) 정보를 담고 있습니다. 데이터셋의 주요 특성은 다음과 같습니다:
manufacturer: 자동차 제조사.
model: 자동차 모델명.
displ: 엔진 배기량(리터 단위).
year: 제조 연도.
cyl: 엔진의 실린더 개수.
trans: 변속기 종류(예: 자동, 수동).
drv: 구동 방식(f = 전륜 구동, r = 후륜 구동, 4 = 사륜 구동).
cty: 도시 연비(mpg 단위).
hwy: 고속도로 연비(mpg 단위).
fl: 연료 종류(예: 가솔린, 디젤).
class: 자동차 분류(예: SUV, 소형차).
이 데이터셋은 주로 연비와 관련된 변수들을 통해 다양한 자동차의 성능과 특성을 분석하는 데 사용됩니다. 예를 들어, 배기량이 연비에 미치는 영향, 자동차 제조사별 연비 차이, 구동 방식에 따른 연비 차이 등을 연구하는 데 활용할 수 있습니다.
데이터셋의 규모에 대해서는, 총 234개의 관찰값(행)과 위에 언급한 11개의 변수(열)로 구성되어 있습니다.
2)
[chat-GPT4.0: midwest 데이터] (2024-01-07)
Q: midwest 데이터셋의 규모와 주요 변수에 대한 설명을 알려줘
A: ChatGPT
midwest 데이터셋은 미국 중서부 지역의 437개 카운티에 대한 정보를 담고 있는 데이터셋입니다. 이 데이터셋은 주로 사회학, 지리학, 통계학 분야에서 사용되며, 여러 변수들을 통해 지역 사회의 다양한 측면을 탐구하는 데 사용됩니다. 데이터셋의 주요 특성은 다음과 같습니다:
PID: 고유 식별자.
county: 카운티 이름.
state: 주 이름.
area: 카운티의 총 면적.
poptotal: 총 인구수.
popdensity: 인구 밀도(인구/면적).
popwhite, popblack, popamerindian, popasian, popother: 인종별 인구 수 (백인, 흑인, 아메리칸 인디언, 아시아인, 기타).
percwhite, percblack, percamerindan, percasian, percother: 인종별 인구 비율 (백인, 흑인, 아메리칸 인디언, 아시아인, 기타).
popadults: 성인 인구 수.
percollege: 대학교육을 받은 비율.
percprof: 전문직 종사자 비율.
poppovertyknown: 빈곤 상태가 알려진 인구 수.
percpovertyknown: 빈곤 상태가 알려진 인구 비율.
percbelowpoverty: 빈곤선 이하 인구 비율.
percchildbelowpovert: 빈곤선 이하 어린이 비율.
percadultpoverty: 성인 빈곤 비율.
percelderlypoverty: 노인 빈곤 비율.
inmetro: 대도시 지역 여부 (0 = 아님, 1 = 맞음).
category: 카운티 유형.
이 데이터셋은 미국 중서부 지역의 인구 통계, 경제, 사회적 특성을 분석하는 데 유용합니다. 데이터셋의 규모는 총 437개의 관찰값(행)과 위에 언급한 변수들을 포함하여 총 28개의 변수(열)로 구성되어 있습니다.
댓글남기기