본문 바로가기
Python 데이터 분석 입문

(Python 데이터 분석 입문 04편) 데이터 전처리(上): 행 추출하기, 열 추출하기, 정렬하기

by mangoseed3434 2025. 12. 12.

안녕하세요? mangoseed3434입니다.

 

최근 프로그래밍 코딩을 연습하는 과정에서 실습 문제를 해결하는 데 어려움을 겪었습니다.

실습 내용의 난이도가 점차 높아지면서 이해를 위해 반복적인 복습이 필요하다고 느꼈습니다.

 

프로그래밍 코딩 실력을 향상시키기 위해서는 결국 많은 연습과 실제 문제 해결 경험이 중요하다고 생각했습니다.

이번에는 pandas 패키지의 주요 함수를 활용해 데이터 전처리 과정을 단계별로 정리하고, 조건 추출과 정렬 방법을 정리했습니다.

 

 

 

 


 

1. pandas 데이터 전처리

 

① 데이터 전처리 개념

 

이번에는 pandas 패키지 내 함수를 이용해서 데이터 전처리 과정을 실습했어요.

 

데이터 전처리란 분석 목적에 맞게 데이터를 가공하고 정리하는 작업입니다.

분석 이전 단계에서 반드시 필요한 과정이며, 데이터의 품질에 따라 분석 결과의 신뢰도가 크게 달라집니다.

 

이번 실습에서는 데이터프레임에서 특정 행과 열을 선택하고, 조건에 따라 데이터를 정렬하는 방법을 중심으로 학습했습니다.

 


 

② df.query( ) 함수

 

df.query( ) 함수는 데이터프레임에서 특정 조건을 만족하는 행을 추출할 때 사용하는 함수입니다.
조건은 문자열 형태로 작성하며, 등호나 부등호를 활용해 비교 연산을 수행합니다.

 

df.query( ) 함수

 

이처럼, df.query( ) 함수의 괄호 안에 조건을 지정할 때에는 ' 따옴표 '와 == 등호를 연달아 작성해서 조건을 지정해야 합니다.

지금은 숫자 변수를 조건으로 지정했지만, 문자 변수를 조건으로 지정하는 방법은 후술하겠습니다.

 

반대로 특정 값이 아닌 행을 출력하려면 != 연산자를 사용합니다.

 

df.query('nclass == 1')은 nclass가 1인 행을 출력합니다.

df.query('nclass != 1')은 nclass가 1이 아닌 행을 출력합니다.

 

이와 같이 <, >, <=, >= 부등호를 활용해 범위 조건을 설정할 수 있습니다.

 


 

③ 다중 조건 설정과 논리 연산자

 

그리고(and) &

 

이렇게 2개 이상의 조건을 지정할 때에는 '그리고(and)'와 '또는(or)'을 추가해서 조건을 묶어야 합니다.

여러 조건을 동시에 지정할 경우 논리 연산자를 사용합니다.

그리고(and): &

또는(or): |

 

또는(or) ❘

 

특히, |를 이용해서 다수의 조건을 지정할 수 있습니다.

 

그치만 이렇게 |을 이용해서 조건을 나열하면, 코딩이 필요 이상으로 길어지는 문제가 발생합니다.

 

 

'또는(or)'의 |로 지정할 조건이 많아질 경우 in 문법을 사용하면 코드를 간결하게 작성할 수 있습니다.

'nclass == 1 | nclass == 3 | nclass == 5'와 'nclass in [1, 3, 5]'는 같은 의미입니다.

 


 

④ 문자 변수를 조건으로 지정하는 방법

 

문자 변수를 조건으로 사용할 때는 작은따옴표와 큰따옴표를 조합해 작성해야 합니다.

문자 변수를 조건으로 지정할 때

 

문자 변수를 조건으로 지정할 때에는 ' 변수 == " 조건 " ' 혹은 " 변수 == ' 조건 ' " 처럼,

' 따옴표 '와 " 큰따옴표 "로 변수와 조건을 구분지어야 합니다.

 


 

⑤ 열 선택과 df.drop() 함수

 

df['변수']

 

일반적으로 df['변수']를 입력하면, 변수를 구성하는 텍스트만 추출합니다.

하지만, df[['변수']]를 입력하면, 데이터프레임 형식으로 변수를 구성하는 데이터를 추출할 수 있습니다.

df[['변수']]

 

df.drop( ) 함수

 

 

특정 열을 제외하고 데이터를 확인하고 싶을 때는 df.drop() 함수를 사용합니다.

df.drop(columns = '변수명')을 통해, '변수명'에 해당되는 열을 제외할 수 있습니다.

다수의 열을 제거하려면 df.drop(columns = ['변수명1', '변수명2']) 형태로 작성해야 합니다.

 


 

⑥ query와 열 선택 조합 실습

 

df.query( ) 함수와 [ ] 를 조합해서 query 조건에 충족하는 [ ]를 선택적으로 출력할 수 있습니다.

 

위 결과를 해석하면, nclass가 1인 행은 인덱스 0부터 3까지 총 4개이며, 각 english 점수는 98, 97, 86, 98입니다.

 

이처럼 df.query(조건)[변수] 형태로 조건에 맞는 특정 열만 선택할 수 있습니다.


 

3. 데이터 정렬

 

① sort_values() 함수

 

 

sort_values() 함수는 특정 열을 기준으로 데이터프레임을 정렬하는 함수입니다.

df.sort_values('변수')를 입력하면 '변수'를 기준으로 데이터 프레임을 다시 정리합니다.

기본적으료 df.sort_values('변수')만 입력하면, '변수'를 기준으로 오름차순 정렬이 수행됩니다.

df.sort_values( ) 함수

 


 

② 오름차순과 내림차순 정렬

 

오름차순은 점점 값이 커지는 정렬입니다.

내림차순은 점점 값이 작아지는 정렬입니다.

제가 헷갈려서 한번 정리했습니다.

df.sort_values('변수', ascending = False)

 

반대로 '변수'를 기준으로 내림차순 정렬할 때에는,

df.sort_values('변수', ascending = False)까지 입력합니다.

 


 

③ 다중 기준 정렬

 

또한, 다수의 '변수'를 기준으로 정렬도 할 수 있습니다.

 

 

이렇게 다수의 '변수'를 df.sort_values( ) 함수에 작성하기위해서는 [ 대괄호 ]를 사용합니다.

위 코드는 nclass를 기준으로 먼저 정렬한 뒤, math 값을 기준으로 다시 정렬합니다.

 

 

물론 ascending을 통해 각 정렬 기준의 정렬 방식도 별개로 지정할 수 있습니다.

df.sort_values(['변수1', '변수2'], ascending = [ T/F, T/F])를 작성하면,

변수1을 기준으로 T(오름차순)/F(내림차순)정렬 후, 변수2를 기준으로 T(오름차순)/F(내림차순)정렬의 방식으로 할 수 있습니다.


 

4. 마무리

 

df.query('조건 == 숫자') : 숫자 변수를 기준으로 조건에 맞는 행을 출력하는 함수
df.query('조건 == "문자"') : 문자 변수를 기준으로 행을 출력하는 함수

df.query("조건 == '문자'") : 문자 변수를 기준으로 행을 출력하는 함수
df.query('조건 != 값') : 특정 값이 아닌 행을 출력하는 함수
df.query('조건 in [값1, 값2]') : 여러 값 중 하나라도 만족하는 행을 출력하는 함수
df.drop(columns='변수명') : 특정 열을 제거하는 함수
df.sort_values('변수') : 특정 열을 기준으로 오름차순 정렬하는 함수
df.sort_values('변수', ascending=False) : 특정 열을 기준으로 내림차순 정렬하는 함수

 

다음에는 데이터를 가공하는 방법(하)에 대해 공부해보겠습니다.