Skip to main content

PANDAS로 데이터 다루기

pandas 라이브러리 소개

  • Python에서 데이터 분석 및 조작을 위한 핵심적이고 강력한 라이브러리
  • Panel Data System의 약자
  • 데이터 처리 및 분석을 위한 강력하고 효율적인 도구
  • 쉽고 빠른 데이터 처리: Excel, CSV, DB 등 다양한 파일 읽기/쓰기
  • 강력한 데이터 조작: 필터링, 정렬, 그룹화
  • 결측치 처리 용이

파일 열기

  • 불러오기
import pandas as pd # pandas를 불러온다(약칭은 pd)
  • Excel 파일 읽기: pd.read_excel('파일명.xlsx', sheet_name='시트명 또는 인덱스')
    • sheet_name 생략 시 첫 번째 시트 불러옴
    • 다양한 옵션 제공 (예: 특정 행을 헤더로 지정, 특정 열만 선택 등)
    • 결과: DataFrame 객체(2차원 표)로 데이터 반환
df = pd.read_excel('car.xlsx')

데이터 보기

  • 전체 보기(표가 길면 중간은 생략)
df
  • 첫 n행만 보기(n을 생략하면 5행만)
df.head(10)
  • 마지막 n행만 보기(n을 생략하면 5행만)
df.tail(10)

DataFrame의 기본 구조

  • Index (인덱스) : 행(row)을 식별하는 이름 (기본값: 0부터 시작)
df.index
  • Columns (컬럼) : 열(column)을 식별하는 이름
df.columns

데이터프레임 기본 정보

  • df.shape: (행 개수, 열 개수) 튜플 반환
  • df.info(): 데이터 타입, 각 열의 non-null 값 개수, 메모리 사용량 등 요약 정보 출력
  • df.dtypes: 각 열의 데이터 타입 확인

열 선택

  • 특정 열 선택 (Series 반환): df['열이름'] 또는 df.열이름 ()
df['price']
df.price # 열 이름에 공백/특수문자 없을 시
  • 여러 열 선택 (DataFrame 반환): df[['열이름1', '열이름2']] (리스트 형태로 전달)
df[['price', 'mileage']]

이름 기반 인덱싱 및 슬라이싱

  • .loc[]: 레이블(이름) 기반 인덱싱/슬라이싱
  • 둥근 괄호 ()가 아닌 각 괄호 []를 사용하는 점에 주의
df.loc[3] # 3번 행
df.loc[3:5] # 3번에서 5번 행까지
df.loc[270:] # 270번행에서 끝까지
df.loc[:3] # 처음부터 3번행까지
df.loc[:, 'model'] # 모든 행의 model 열
df.loc[:, 'model':'year'] # 모든 행의 model 열에서 year 열까지

정수 위치 기반 인덱싱 및 슬라이싱

  • .iloc[]: 정수 위치 기반 인덱싱/슬라이싱
  • 둥근 괄호 ()가 아닌 각 괄호 []를 사용하는 점에 주의
  • 슬라이싱에서 마지막은 포함하지 않음
    • 3:5의 경우 5는 미포함
df.iloc[3] # 3번 행
df.iloc[3:5] # 3번에서 4번 행까지
df.iloc[270:] # 270번행에서 끝까지
df.iloc[:3] # 처음부터 2번행까지
df.iloc[:, 1] # 모든 행의 1번열
df.iloc[:, 1:4] # 모든 행의 1번열에서 3번열까지

파일 저장하기

  • Excel로 저장:
df.to_excel('저장할_이름.xlsx')
  • 인덱스(행 번호)를 제외하고 저장
df.to_excel('저장할_이름.xlsx', index=False)
  • CSV로 저장:
df.to_csv('저장할_이름.csv')

퀴즈

사용자 정보 입력
퀴즈를 시작하기 전에 이름과 소속을 입력해주세요.

Q&A