판다스 시리즈 완전 정복 — 인덱스·결측치·불리언 인덱싱 3가지 핵심 개념

F1 레이스에서 이런 상황을 상상해보자. 피트월의 엔지니어가 5개 구간 랩타임 데이터를 받았다. 숫자만 죽 나열된 배열을 보면서 “3번째가 어느 구간이지?”를 매번 세어야 한다면, 분석보다 확인에 시간이 더 걸린다. 각 숫자에 구간 이름이 붙어 있다면 얘기가 달라진다. 데이터가 스스로 맥락을 설명한다.

판다스 시리즈(Series)는 바로 이 구조다. 값에 이름을 붙이는 것, 그게 시리즈가 넘파이 배열과 결정적으로 다른 지점이다. 이 글에서는 시리즈의 인덱스 구조가 왜 중요한지, 결측치를 어떤 기준으로 판단해야 하는지, 조건 필터가 분석에서 어떤 역할을 하는지를 개념 중심으로 짚는다. 코드 문법보다 이 개념들을 먼저 이해하면, AI에게 판다스 작업을 요청할 때도 훨씬 정확한 지시가 가능해진다.

시리즈의 핵심은 인덱스다 — 데이터에 맥락이 생기는 순간

넘파이 배열은 빠르다. 수치 연산 속도만 놓고 보면 판다스 시리즈보다 낫다. 그런데 데이터 분석 현장에서 넘파이 배열만으로는 부족한 순간이 생긴다. “이 값이 어떤 항목의 값인가?”라는 질문에 배열 자체가 답을 주지 못하기 때문이다.

판다스 시리즈는 값과 인덱스를 함께 저장한다. 인덱스는 숫자일 수도 있고, 문자열일 수도 있다. 날짜가 될 수도 있고, 공정 코드가 될 수도 있다. 중요한 건 이 인덱스가 단순한 순서 번호가 아니라 데이터의 맥락을 담는 레이블이라는 점이다.

구분넘파이 배열판다스 시리즈
인덱스0부터 시작하는 정수 고정숫자·문자 자유 지정
결측치 처리직접 구현기본 제공
표현 방식값만 출력인덱스 + 값 함께 출력
용도수치·벡터 연산데이터 분석·전처리

시리즈를 출력하면 왼쪽에 인덱스, 오른쪽에 값이 나란히 나온다. 이 구조가 데이터프레임의 열 하나와 동일하다. 시리즈를 제대로 이해하면 데이터프레임은 자연스럽게 따라온다.

인덱스를 어떻게 설정하느냐는 데이터 생성 시점에 결정해야 한다. 지역명, 날짜, 설비 코드처럼 분석에서 기준이 될 레이블을 인덱스로 잡으면 이후 필터링·비교·병합이 훨씬 수월해진다. AI에게 “이 데이터로 시리즈를 만들어줘”라고 요청할 때, 어떤 값을 인덱스로 쓸지를 함께 알려주는 것이 핵심이다.

데이터에 접근할 때 — 레이블로 꺼내는 것과 순서로 꺼내는 것

시리즈에서 데이터를 꺼내는 방법은 두 가지 관점으로 나뉜다. 레이블(인덱스 이름)로 접근하거나, 위치(순서 번호)로 접근하거나.

레이블로 접근하는 방식은 직관적이다. “서울 값을 꺼내줘”라는 질문이 코드에 그대로 반영된다. 위치로 접근하는 방식은 넘파이 배열과 동일하게 0부터 세는 방식이다. 둘 다 사용할 수 있지만, 인덱스를 문자로 지정한 시리즈에서는 레이블 접근이 훨씬 가독성이 높다.

여러 값을 동시에 꺼낼 때는 리스트 형태로 인덱스를 묶어서 전달한다. 이때 반환되는 결과는 단일 값이 아니라 시리즈 구조다. 인덱스와 값의 연결이 그대로 살아있는 채로 돌아온다. 분석 흐름에서 이 점이 중요하다. 꺼낸 결과를 다시 분석에 쓸 때 레이블 정보가 유지되어야 다음 단계로 자연스럽게 이어진다.

결측치는 판단의 문제다 — 제거할지 채울지를 먼저 결정해야 한다

실제 데이터에는 빠진 값이 있다. 센서 오류, 미입력, 통신 끊김 등 이유는 다양하다. 판다스는 이 빠진 값을 NaN(Not a Number)으로 표현하고, 결측치 여부를 확인하는 도구를 기본으로 제공한다.

결측치 처리는 두 단계로 나뉜다. 먼저 파악하고, 그 다음 처리 방법을 결정한다.

파악 단계에서는 결측치가 어디에 있는지, 몇 개인지를 확인한다. 전체 데이터 중 결측치 비율이 어느 정도인지를 먼저 보는 것이 순서다. 이 단계에서 판단 없이 바로 제거하거나 채우면 분석 결과가 틀어질 수 있다.

처리 방법은 두 가지 중 하나를 선택해야 한다.

상황판단 기준처리 방법
결측치 비율이 낮고 해당 행이 분석에 중요하지 않을 때제거해도 분석에 영향 없음해당 행 삭제
결측치가 많거나 해당 행을 살려야 할 때대체값이 분석 왜곡을 최소화해야 함평균·중앙값·0 등으로 대체

어떤 값으로 채울지는 도메인 지식이 결정한다. 평균으로 채울지, 직전 값으로 채울지, 0으로 채울지는 데이터가 무엇을 의미하느냐에 달려 있다. AI에게 결측치 처리를 요청할 때 “결측치를 처리해줘”라고만 하면 AI가 임의로 방법을 선택한다. “결측치는 열 평균으로 대체해줘” 또는 “결측치가 있는 행은 제거해줘”처럼 판단을 먼저 내리고 지시해야 의도한 결과가 나온다.

판다스 시리즈 인덱스와 값 구조 개념 인포그래픽

조건 필터링은 질문을 데이터로 번역하는 작업이다

분석에서 자주 하는 작업 중 하나가 “조건을 만족하는 데이터만 골라내는 것”이다. 판다스 시리즈에서는 이를 불리언 인덱싱으로 처리한다. 조건식을 시리즈에 적용하면 각 값이 조건을 만족하는지 True/False로 판단하고, True인 위치의 값만 추출한다.

넘파이 배열에서 같은 방식으로 필터링하면 값만 남는다. 어떤 레이블의 값인지 정보가 사라진다. 판다스 시리즈는 다르다. 필터 후에도 인덱스가 살아있다. 85점 이상인 지역을 골라내면, 결과에 지역 이름이 그대로 붙어 나온다.

이 차이가 분석 흐름에서 중요한 이유가 있다. 필터링한 결과를 다시 다른 데이터와 비교하거나 병합할 때, 레이블이 기준점이 되기 때문이다. 레이블이 없으면 “몇 번째 값”으로 위치를 맞춰야 하는데, 데이터가 조금만 복잡해지면 오류가 생긴다.

조건이 복잡해질수록 조건식을 변수로 분리해두는 습관이 중요하다. “85 이상이고 100 미만인 데이터”처럼 조건이 여러 개 겹칠 때, 각 조건을 먼저 정의하고 결합하는 방식이 읽기도 쉽고 수정하기도 쉽다. AI에게 필터링을 요청할 때도 마찬가지다. “조건에 맞는 거 골라줘”보다 “값이 85 이상이고 100 미만인 항목만 추출해줘”처럼 조건을 명확하게 명시하는 것이 정확한 결과를 얻는 방법이다.

다음은 데이터프레임 — 시리즈가 모이면 표가 된다

판다스 시리즈는 열 하나짜리 데이터 구조다. 이 시리즈를 여러 개 묶으면 2차원이 된다. 그게 데이터프레임(DataFrame)이다.

시리즈에서 배운 세 가지 개념, 인덱스 구조·결측치 처리·불리언 인덱싱은 데이터프레임에서도 동일하게 작동한다. 열이 여러 개로 늘어날 뿐, 동작 원리는 그대로다. 시리즈를 제대로 이해하면 데이터프레임은 자연스럽게 따라온다.

데이터프레임에서는 여러 열을 동시에 다루고, 그룹핑·병합·피벗 같은 본격적인 전처리가 가능해진다. 다음 포스팅에서 이어서 다룬다.

핵심 요약

개념핵심 포인트
인덱스값에 붙이는 레이블 — 숫자·문자 자유 지정, 분석 기준이 된다
데이터 접근레이블로 꺼내거나 위치로 꺼내거나 — 결과는 항상 인덱스와 함께
결측치 파악어디에 몇 개 있는지 먼저 확인
결측치 처리제거(dropna) vs 대체(fillna) — 판단은 도메인 지식이 한다
불리언 인덱싱조건으로 필터링, 필터 후에도 인덱스 유지 (넘파이와 차이)
데이터프레임 예고시리즈 여러 개를 묶은 2차원 구조, 같은 개념이 그대로 적용

판다스 시리즈에서 인덱스 구조를 잡았다면, 다음 질문은 “loc과 iloc은 뭐가 다르고, AI에게 어떻게 요청하냐”다.

시리즈가 모이면 데이터프레임이 된다. 생성부터 삭제까지 전체 구조를 한 흐름으로 잡고 싶다면 이어서 읽어볼 것을 권한다.

판다스 Series API 전체는 Pandas 공식 문서에서 확인할 수 있다.

FAQ

구조는 비슷하다. 둘 다 키-값 쌍으로 데이터를 저장한다. 차이는 목적이다. 딕셔너리는 데이터를 저장하고 꺼내는 용도다. 시리즈는 저장에 더해 연산·필터링·결측치 처리·통계 분석을 바로 할 수 있는 분석 도구다. AI에게 데이터 분석을 요청하는 맥락이라면 시리즈(또는 데이터프레임) 기준으로 대화하는 것이 훨씬 정확하다.

결측치 비율과 해당 데이터의 역할을 먼저 본다. 결측치가 전체의 극히 일부이고 해당 행이 분석에 크게 영향을 주지 않으면 제거한다. 결측치가 많거나 해당 행이 중요하면 대체값을 써서 살린다. 어떤 값으로 채울지는 데이터가 무엇을 의미하느냐, 즉 도메인 지식이 결정한다. AI에게 이 작업을 맡기려면 판단을 먼저 내리고 방법을 지시해야 한다.

순서상 그렇다. 데이터프레임은 시리즈를 열 방향으로 여러 개 묶은 구조다. 인덱스가 어떻게 작동하는지, 결측치를 어떻게 다루는지, 조건 필터가 어떻게 동작하는지 — 이 세 가지를 시리즈에서 먼저 잡아두면 데이터프레임에서 같은 개념이 반복될 때 막히지 않는다.

관련 글 보기