4 분 소요

1. 개요

  • 이곳에서는 첫째, 데이터 형태 중에서 가장 많이 사용하는 데이터 프레임이 무엇인지를 살펴보고(교재 4장), 둘째, 데이터 프레임을 대상으로 데이터를 다루는 기초적인 방법을 익힌다(교재 5장).
  • 실습 코드:
  • 실습 데이터: 실습 데이터와 파이썬 코드에서 다음 파일을 워킹디렉터리로 다운로드 받아서 ipynb 파일과 동일한 디렉터리에 둔다.
    • excel_exam_novar.xlsx
    • exam.csv
    • mpg.csv 1)
    • midwest.csv 2)

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]})
    
  • 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%에 대한 범위. * 사분위 수
    image_quantile
  • [사분위수(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쪽)

참고할 유튜브

참고 문헌


주석


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개의 변수(열)로 구성되어 있습니다.

업데이트:

댓글남기기