데이터 수집 및 분석 기초

2025. 8. 26. 15:38·자격증/AICE

 

 

출처 : 더에이아이랩 AICE Associate특강

 

 

import문

import pandas as pd
import sklearn as sk
  • Pandas를 별칭 pd로 불러오기
  • scikit-learn을 별칭 sk로 임포트하기

 

 

데이터 불러오기

 

데이터 불러오기

df = pd.read_csv('데이터 경로', encoding, ...)

 

데이터 저장하기

df.to_csv('저장할 경로')

 

교차표(Crosstab) 확인

pd.crosstab(index=인덱스, columns=컬럼)

 

 

arrival_time Afternoon Night …
Bangalore 6992 14338  
Delhi 8007 12007  

 


 

 

데이터 살펴보기

 

데이터 살펴보기

df = pd.read_csv('../data/hotel_bookings.csv', encoding = "cp949")
  • df.head(n)
  • df.tail(n)
    • 각각 데이터프레임 내의 처음 n줄, 마지막 n줄 데이터 출력 (n 지정 안 할 시, 5개 출력)
  • df.shape
  • df.columns
  • df.info()
  • df.dtypes

 

 

데이터 다루기① - 필요 데이터 선택

 

컬럼명으로 데이터 선택

# 원하는 컬럼의 데이터만 추출
df['컬럼명']
df[['컬럼명']]

# 원하는 컬럼'들'의 데이터만 추출
df[['컬럼명1', '컬럼명2', '컬럼명3', ...]]

 

 

행 범위를 지정해서 데이터 선택

df[시작 행 번호:끝 행 번호+1]

# 레이블 기반 인덱싱 사용하여 행과 열 선택
df.loc[row_label, column_label]

# 정수 기반 인덱싱 사용하여 행과 열 선택
df.loc[row_index], column_index]

 

조건으로 데이터 선택

df_extract = df['조건문']

 


 

 

데이터 다루기② - 필요 데이터 변경

 

데이터 추가

df['새로운 컬럼명'] = '추가할 컬럼값'
df.insert(삽입할 index, '새로운 컬럼명', '추가할 컬럼값')

 

데이터 삭제

df.drop('삭제할 컬럼명', axis=1)
df.drop(index='삭제할 인덱스값', axis=0)
  • axis=1은 컬럼 삭제, axis=0은 행 삭제
  • inplace=True로 설정하면 원본 데이터프레임을 변경

 

컬럼명 변경

new_df = df.rename(columns={"컬럼명1":'변경할 컬럼명1', "컬럼명2":'변경할 컬럼명2'...})

 

데이터프레임 정렬

df = df.sort_values(by = '정렬 기준 열', ascending=False)
  • ascending이 True면 오름차순, False면 내림차순

 


 

 

데이터 다루기③ - 데이터프레임 변경

 

그룹화

group_df = df.groupby('컬럼명')
  • ‘컬럼명’을 기준으로 그룹화한 객체 반환
  • 그룹화된 컬럼에 대해 다양한 통계 및 집계 확인/계산할 수 있음

 

피벗테이블 생성

df.pivot(index='컬럼명1', cloumns='컬럼명2', values='컬럼명3')
  • 데이터를 요약/분석하는 데사용되는 데이터 구조
  • 데이터의 특정 열을 기준으로 데이터를 재구성하여 요약된 정보 제공
  • 일반적으로 집계, 그룹화, 피벗(원본 데이터 형태를 변형하여 새로운 축을 생성)과 같은 작업 수행 시 사용
  • 복잡한 데이터를 간결하게 표현할 때 사용

 

인덱스 레이블 변경

new_df = df.set_index(['컬럼명1', '컬럼명2'])
  • 지정한 컬럼을 인덱스로 변경

 

concat 활용①

pd.concat([df1, df2], ignore_index=True/False, axis=0) # or axis=1
  • 두 데이터프레임에 중복된 컬럼이 존재할 때
    • ignore_index=True : 합쳐진 데이터프레임의 인덱스가 처음부터 다시 계산됨
    • ignore_index=False : 기존의 인덱스를 그대로 따름
  • axis를 1로 하면 컬럼, 0으로 하면 행 병합

 

concat 활용②

pd.concat([df1, df2], join='outer') # or join='inner'
  • join=’outer’ : 두 df의 모든 행을 포함하는 결과 생성
  • join=’inner’ : 두 df의 겹치는 인덱스 또는 컬럼에 대해서만 데이터 결합

 

merge/join 활용

pd.merge(df1, df2, on='customer_id', how='left)
  • on에 해당하는 컬럼 기준으로 결합
  • how=’outer’ : 두 df의 모든 on값을 포함하는 결과 생성
  • how=’inner’ : 두 df의 겹치는 on값에 대해서만 데이터 결합
  • how=’left’ : 왼쪽 df에 있는 on값에 대해서만 데이터 결합
  • how=’right’ : 오른쪽 df에 있는 on값에 대해서만 데이터 결합

 


 

 

비시각화 분석

 

요약 통계량 및 빈도표 확인

  • df.descripbe() : 컬럼별 요약 통계량 출력
    • 숫자형 데이터의 통계량(count : 데이터 수, mean : 평균값, std : 표준편차, min : 최솟값, max : 최댓값, 4분위값)
    • 범주형 데이터의 통계량(데이터 수, 최빈값, 최빈값 개수)
  • df[’컬럼명’].value_counts() : 지정된 컬럼의 값(value)의 발생 횟수 출력

 

상관계수 확인

  • df.corr() : 데이터의 컬럼 간 상관관계 확인
    • +1에 가까울수록 강한 양의 상관관계
    • -1에 가까울수록 강한 음의 상관관계
    • 0에 가까울수록 상관관계가 없다.
  • df[’컬럼명’].value_counts() : 지정된 컬럼의 값(value)의 발생 횟수 출력

 


 

 

데이터 시각화(Visualization)① - Matplotlib

 

matplotlib 이용해 그래프 그리기

import matplotlib.pyplot as plt
  • plt.bar(x, y) : 막대 그래프를 시각화
  • plt.hist(data, bins=n) : 히스토그램을 시각화
    • bins 파라미터 : 계급을 몇 개의 구간으로 나눌지를 지정, 기본값 : 10
  • plt.plot(x, y) : 선 그래프를 시각화
  • plt.pie(data) : 파이 그래프를 시각화
  • plt. boxplot(data) : 박스차트를 시각화
  • plt.scatter(x, y) : 산점도를 시각화
  • plt.pcolor(matrix) : 히트맵을 시각화
    • plt.colorbar() : 위 함수만 실행하면 히트맵만 그려지기 떄문에 컬러바 추가

 

matplotlib 관련 함수

  • figure() : 그래프의 전체적인 객체(캔버스)를 생성하고 크기 및 해상도를 설정
  • show() : 그래프의 객체를 화면에 보여줌

 

matplotlib 관련 함수(옵션)

  • title(str) : 그래프의 제목을 설정
  • xlabel(str) / ylabel(str) : x, y축 제목(레이블)을 설정
  • xlim([min, max]) / ylim([min, max]) : x, y축의 표시 범위 지정
  • xticks() / yticks() : x, y축의 눈금 값과 크기, 기울기 등 설정
  • grid(True/False) : 그래프에 격자를 표시할 것인지 지정
  • legend() : 그래프에 범례 추가

 


 

 

데이터 시각화(Visualization)② - Seaborn

 

 

seaborn 관련 함수

  • set_time() : 그래프의 전체적인 객체(캔버스)를 생성하고 크기 및 해상도를 설정
  • set_style(style=’whitegrid’) : 그래프의 배경 및 격자 스타일 지정
  • set_palette() : 그래프의 색상 팔레트 설정

 

seaborn 이용해 그래프 그리기

import seaborn as sns
  • sns.barplot(x, y, data) : 막대그래프 생성
  • sns.countplot(data) : 카운트플롯 생성
  • sns.hisplot(data, bins=n) : 히스토그램 생성
  • sns.lineplot(x, y, data) : 산점도 시각화
  • sns.boxplot(x, y, data) : 선 그래프 생성
  • sns.scatterplot(x, y, data) : 선 그래프 생성
  • sns.catplot() : 범주형 변수의 산점도 시각화
  • sns.joinplot(x, y, data) : 수치형 변수의 산점도와 히스토그램 시각화
  • sns.pairplot() : 여러 변수 간 산점도 생성

 

반응형

'자격증 > AICE' 카테고리의 다른 글

머신러닝 의사결정나무 & 랜덤포레스트로 모델 학습 - 개념 및 연습문제  (0) 2025.10.10
머신러닝 데이터셋 분리 및 스케일링 - 개념 및 연습문제  (0) 2025.09.30
머신러닝 원-핫 인코딩(One-Hot Encoding) - 개념 및 연습문제  (0) 2025.09.26
AI 모델링 기초  (0) 2025.09.01
데이터 전처리 기초  (0) 2025.08.29
'자격증/AICE' 카테고리의 다른 글
  • 머신러닝 데이터셋 분리 및 스케일링 - 개념 및 연습문제
  • 머신러닝 원-핫 인코딩(One-Hot Encoding) - 개념 및 연습문제
  • AI 모델링 기초
  • 데이터 전처리 기초
오은이
오은이
  • 오은이
    오은이 하우스
    오은이
  • 전체
    오늘
    어제
    • 분류 전체보기 (85)
      • 일기 (2)
      • Python (1)
      • Java (4)
      • CS (2)
      • 코딩테스트 (26)
        • 백준 (25)
        • 프로그래머스 (1)
      • 웹 개발 (18)
        • Spring (7)
        • JavaScript (3)
        • WebSquare (5)
        • React (3)
      • DB (5)
        • MySQL (4)
        • Oracle (1)
      • 서버&인프라 (18)
        • Server (5)
        • Cloud (12)
        • Linux (1)
      • 자격증 (9)
        • 정보처리기사 (2)
        • AICE (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    AICE Associate
    SpringBoot
    Spring
    Associate
    리액트
    docker배포
    오블완
    톰캣
    Apache
    EC2
    db
    AI
    웹스퀘어
    dockerspring
    react
    docker
    websquare
    MySQL
    cloud DB
    머신러닝
    클라우드
    백준
    백준자바
    AICE
    자바
    tomcat
    Java
    티스토리챌린지
    클라우드 배포
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
오은이
데이터 수집 및 분석 기초
상단으로

티스토리툴바