[연구 자동화 #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편에서 그 해결책을 다뤄보겠습니다!

댓글

이 블로그의 인기 게시물

[연구 자동화 #1] 엑셀의 한계를 넘어 파이썬으로: 연구 데이터 관리의 새로운 표준