출처 : 더에이아이랩 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 |