[연구 자동화 #3] Pandas 기초: 수만 행의 실험 데이터를 단 3줄의 코드로 불러오기

 


연구실에서 가장 흔하게 접하는 데이터 형식은 아마 .csv 혹은 .xlsx일 것입니다. 보통은 이 파일을 확인하기 위해 엑셀을 먼저 실행하죠. 하지만 데이터가 10만 행을 넘어가면 엑셀은 로딩 바를 띄우며 우리의 인내심을 테스트합니다.

파이썬의 핵심 라이브러리인 Pandas(판다스)를 사용하면 이런 기다림은 과거의 일이 됩니다. 판다스는 파이썬계의 '엑셀'이라고 불리지만, 그 성능과 확장성은 비교할 수 없을 정도로 강력합니다. 오늘은 복잡한 문법 다 치워버리고, 딱 3줄의 코드로 데이터를 장악하는 법을 알아보겠습니다.


1. 판다스(Pandas)라는 강력한 엔진 이해하기

판다스는 데이터를 'DataFrame'이라는 형식으로 다룹니다. 쉽게 말해 '파이썬 안에 떠 있는 엑셀 시트'라고 생각하면 됩니다.

엑셀은 눈에 보이는 셀 하나하나를 수정하는 방식이라 무겁지만, 판다스는 데이터를 메모리에 올린 뒤 행과 열이라는 구조를 통해 연산하기 때문에 수만 줄의 데이터도 눈 깜빡할 사이에 처리합니다. 무엇보다 좋은 점은, 우리가 2편에서 설치한 주피터 노트북에서 이 표를 아주 깔끔하게 확인할 수 있다는 것입니다.


2. 실전: 데이터 로딩을 위한 마법의 3줄 코드

자, 이제 주피터 노트북을 켜고 새 셀에 아래 코드를 입력해 보세요. (실험 데이터 파일이 data.csv라는 이름으로 같은 폴더에 있다고 가정하겠습니다.)

Python
import pandas as pd

# 1. 데이터를 불러와서 df라는 변수에 담기
df = pd.read_csv('data.csv')

# 2. 데이터의 앞부분 5줄만 살짝 보기
print(df.head())

이게 끝입니다. 믿기지 않겠지만, 이 3줄이면 엑셀이 5분 동안 끙끙대며 열던 파일을 0.1초 만에 불러올 수 있습니다. 여기서 dfDataFrame의 약자로, 앞으로 우리가 다룰 데이터 뭉치를 부르는 이름입니다.


3. 연구원들이 가장 많이 겪는 '로딩 에러' 해결법

코드를 쳤는데 빨간색 에러 메시지가 떴나요? 당황하지 마세요. 연구 데이터 로딩 시 발생하는 에러의 90%는 아래 두 가지 중 하나입니다.

1) 파일 경로 문제 (FileNotFoundError) 파이썬은 파일이 어디 있는지 모르면 화를 냅니다. 가장 쉬운 방법은 주피터 노트북 파일(.ipynb)과 분석할 데이터 파일(.csv)을 같은 폴더에 두는 것입니다. 만약 폴더가 다르다면 파일 이름 대신 전체 경로(C:\Users...)를 적어줘야 합니다.

2) 한글 깨짐 문제 (UnicodeDecodeError) 한국 연구실의 고질병이죠. 엑셀에서 저장한 CSV 파일은 가끔 인코딩 방식이 달라 한글이 깨지거나 에러가 납니다. 그럴 땐 코드 한 단어만 추가해 보세요.

  • df = pd.read_csv('data.csv', encoding='cp949')

  • 이 마법의 주문 encoding='cp949' 하나면 웬만한 한글 깨짐은 해결됩니다.


4. 엑셀을 열지 않고도 알 수 있는 것들

데이터를 불러왔다면, 이제 엑셀에서 필터를 걸고 드래그하던 작업들을 코드 한 줄로 끝낼 수 있습니다.

  • df.info() : 데이터에 빈칸(결측치)이 있는지, 숫자 데이터인지 문자 데이터인지 한눈에 보여줍니다.

  • df.describe() : 평균, 표준편차, 최솟값, 최댓값 등 기초 통계량을 순식간에 계산해 줍니다. 엑셀에서 함수 하나하나 넣던 노가다는 이제 끝입니다.

  • df.shape : 전체 데이터가 몇 행, 몇 열인지 바로 확인합니다.


5. 마치며: 데이터 분석의 '입구'에 서다

처음 엑셀을 버리고 파이썬으로 데이터를 불러왔을 때의 그 쾌감을 저는 아직도 잊지 못합니다. 눈앞에 펼쳐진 깔끔한 데이터 표는 여러분이 이제 더 이상 '노동자'가 아닌 '분석가'임을 증명하는 첫 번째 증거입니다.

데이터를 성공적으로 불러왔다면, 여러분은 이미 연구 자동화의 절반을 성공한 셈입니다. 이제 이 데이터를 깎고 다듬어서 의미 있는 결과를 도출하는 일만 남았습니다.


## 핵심 요약

  • Pandas는 대용량 데이터를 메모리상에서 효율적으로 처리하는 파이썬 필수 라이브러리입니다.

  • pd.read_csv() 함수를 사용하면 단 한 줄로 수만 줄의 데이터를 변수(df)에 담을 수 있습니다.

  • 한글 깨짐 에러가 발생할 경우 encoding='cp949' 옵션을 활용하여 해결할 수 있습니다.


## 다음 편 예고

재료를 가져왔으니 이제 불순물을 제거해야겠죠? 다음 시간에는 데이터 분석의 꽃이라 불리는 [데이터 전처리(Cleaning): 불필요한 행/열 삭제하고 결측치 처리하기]를 배워보겠습니다. 엉망진창인 실험 데이터를 깔끔하게 세탁하는 노하우를 공개합니다.


## 소통 질문

여러분이 다루는 실험 데이터 중 가장 골치 아픈 형식은 무엇인가요? (예: 파일이 너무 많음, 열 이름이 이상함, 빈칸이 너무 많음 등) 댓글로 남겨주시면 4편에서 그 해결책을 다뤄보겠습니다!

댓글

이 블로그의 인기 게시물

[연구 자동화 #38] 실험이 멈춰도 걱정 마세요: 파이썬 실시간 모니터링과 알림 시스템 구축

[연구 자동화 #31] 논문에 바로 쓰는 시각화의 정석: 출판용 고해상도 이미지 만들기

[연구 자동화 #10] 고급 크롤링: Selenium으로 브라우저를 직접 조종하여 로그인 및 자동 클릭 마스터하기