반응형
Chapter 02. 데이터 핸들링을 위한 Numpy와 Pandas
Chapter 02. Pandas 기초
01. Pandas란?
- 표 형식 데이터를 다루는 라이브러리
- Numpy 기반으로 빠른 연산 지원
- 주요 데이터 구조: Series(1차원), DataFrame(2차원)
- 엑셀·SQL 테이블처럼 직관적으로 사용 가능
- Matplotlib과 연동되어 간단한 그래프 시각화 가능
02. Series 자료형
- 구조: 데이터(ndarray) + 인덱스 + 데이터 타입
- 생성 방법
import pandas as pd
# 리스트로 생성
s1 = pd.Series([1, 2, 3, 4])
s2 = pd.Series([1, 2, 3, 4], index=['A', 'B', 'C', 'D'])
# 데이터 타입 지정
s3 = pd.Series([1, 2, 3, 4], index=['A', 'B', 'C', 'D'], dtype=float)
# 딕셔너리로 생성
s4 = pd.Series({'A':1, 'B':2, 'C':3, 'D':4})
03. DataFrame 자료형
- 구조: 여러 개의 Series로 구성된 2차원 자료형
- 생성 방법
# 딕셔너리 활용
df1 = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
})
# 리스트 활용
df2 = pd.DataFrame([['Alice', 25, 'New York'],
['Bob', 30, 'Los Angeles'],
['Charlie', 35, 'Chicago']],
columns=['Name', 'Age', 'City'])
# 인덱스 지정
df3 = pd.DataFrame([[25, 'New York'], [30, 'Los Angeles'], [35, 'Chicago']],
columns=['Age', 'City'],
index=['Alice', 'Bob', 'Charlie'])
04. 공통 속성
- index: 행 인덱스 반환
- columns: 열 이름 반환
- values: 내부 데이터를 ndarray 형태로 반환
- dtype(s): 데이터 타입 반환
- shape: 행과 열 크기 반환
Chapter 03. 데이터 입출력
01. 파일 입출력
- CSV & Excel 읽기
import pandas as pd
df1 = pd.read_csv('data.csv', header=0, index_col=0, usecols=['col1','col2'], encoding='utf-8', sep=',')
df2 = pd.read_excel('data.xlsx', sheet_name='Sheet1')
- 주요 인자
- header: 열 인덱스 지정
- index_col: 특정 열을 인덱스로 설정
- usecols: 특정 열만 불러오기
- encoding: 한글 깨짐 방지 (euc-kr, cp949 등)
- sep: 구분자 지정(csv, tsv 등)
- sheet_name: 특정 시트 지정
- CSV & Excel 저장
df.to_csv('output.csv', index=False, encoding='utf-8')
df.to_excel('output.xlsx', sheet_name='Result')
02. 여러 데이터 불러오기
- concat 함수: DataFrame 병합
pd.concat([df1, df2], axis=0, ignore_index=True) # 행 방향 결합
pd.concat([df1, df2], axis=1) # 열 방향 결합
- 여러 파일 병합
import os
files = os.listdir('data/')
result = pd.DataFrame()
for f in files:
temp = pd.read_csv(f'data/{f}')
result = pd.concat([result, temp], axis=0, ignore_index=True)
- 여러 시트 병합
xls = pd.ExcelFile('multi_sheet.xlsx')
result = pd.DataFrame()
for sheet in xls.sheet_names:
temp = pd.read_excel(xls, sheet_name=sheet)
result = pd.concat([result, temp], axis=0)
* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
💡 생각 정리
Pandas는 데이터를 다루는 데 있어서 매우 직관적이고 강력하다는 점이 인상적이었다. Series와 DataFrame 구조를 이해하면 데이터를 다양한 방식으로 변환하고 처리할 수 있다는 것을 알게 되었고, 라벨 기반 인덱싱 덕분에 데이터 접근이 훨씬 명확해졌다. 또한 결측값 처리나 병합, 그룹화 같은 기능들이 실무에서 자주 쓰일 것 같다는 생각이 들었다.
데이터 입출력 부분에서는 실제 프로젝트에서 가장 자주 사용하는 과정이므로 반드시 익숙해져야 한다는 점을 깨달았다. 다양한 옵션을 활용하면 단순히 파일을 읽고 쓰는 것을 넘어서 원하는 형태로 데이터 구조를 설계할 수 있었고, 특히 여러 파일이나 여러 시트를 한 번에 병합할 수 있는 기능이 실무에서 큰 도움이 될 것이라고 느꼈다.
🚀 적용점
- CSV, 엑셀 등 다양한 데이터 파일을 Pandas로 불러와 전처리 및 분석에 활용
- 결측값 보정, 데이터 병합, 그룹화, 형 변환을 통해 실무 데이터 처리 자동화
- 여러 개의 CSV 파일을 통합하여 대규모 데이터셋 구성
- 엑셀 파일의 여러 시트를 하나의 DataFrame으로 합쳐서 관리
- 저장 시 인덱스와 헤더를 조정하여 협업에 적합한 포맷으로 내보내기
- 데이터 전처리부터 간단한 시각화까지 일관된 워크플로우를 구축
반응형
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-4 (0) | 2025.09.24 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-3 (0) | 2025.09.23 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-1 (0) | 2025.09.21 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-7 (0) | 2025.09.21 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-6 (0) | 2025.09.20 |