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')
퀴즈
사용자 정보 입력
퀴즈를 시작하기 전에 이름과 소속을 입력해주세요.