본문 바로가기
두두 IT/머신런닝(ML)

Pandas DataFrame 컬럼(column) 분할(split)과 삭제(remove)

by DoDo's 2026. 5. 17.
반응형

1. head() 메서드

[코드 & 실행 값]

Python
import pandas as pd

# 1. 항공 지연 데이터 불러오기
delays_df = pd.read_csv('flight_delays.csv')

# 2. 최상위 5개 데이터 확인하기 (괄호 안에 숫자를 넣으면 그 숫자만큼 보여줍니다)
print(delays_df.head())

실행 결과:

Plaintext
(데이터가 너무 길어서 예시로 요약합니다)
   FL_DATE OP_CARRIER ORIGIN DEST  CRS_ARR_TIME  ARR_TIME  ARR_DELAY
0  2018...         WN    ABQ  BWI          1630      1647       17.0
1  2018...         WN    ABQ  DAL          1235      1232       -3.0
...

2. 불필요한 컬럼 삭제하기 (drop)

머신러닝에서는 '정답'을 예측하기 위해 여러 '힌트(피처)'를 사용합니다.

비행기 연착 시간(ARR_DELAY)을 예측하는 모델을 만들고 싶다면, 실제 도착 시간(ARR_TIME) 데이터는 미리 제거해야 합니다. (도착 시간을 안다는 건 이미 비행기가 도착했다는 뜻이니까 예측의 의미가 없겠죠!) 이럴 때 .drop() 메서드를 사용하여 특정 컬럼을 제거할 수 있습니다.

[코드 & 실행 값]

Python
# 'ARR_TIME'(도착 시간) 컬럼을 제거해 보겠습니다.
# axis=1 은 '열(컬럼)'을 의미합니다. (axis=0 이면 행을 의미)
new_df = delays_df.drop('ARR_TIME', axis=1)

print(new_df.head())

실행 결과:

Plaintext
# 맨 오른쪽에 있던 'ARR_TIME' 컬럼이 싹 지워지고 출력됩니다.
   FL_DATE OP_CARRIER ORIGIN DEST  CRS_ARR_TIME  ARR_DELAY
0  2018...         WN    ABQ  BWI          1630       17.0
...

3. 원본 데이터프레임에 바로 반영하기 (inplace=True)

위의 방식처럼 삭제한 결과를 new_df라는 새로운 변수에 담아도 되지만, 아예 기존 데이터프레임(delays_df) 자체에서 지워버리고 싶을 때가 있습니다. [06:22] 이때는 inplace=True 파라미터를 추가해주면, 번거롭게 변수를 새로 만들 필요 없이 원본 데이터가 바로 수정(덮어쓰기) 됩니다.

[코드 & 실행 값]

Python
# 원본 데이터(delays_df)에서 'ARR_TIME'을 바로 날려버리기!
delays_df.drop('ARR_TIME', axis=1, inplace=True)

# delays_df 자체에서 컬럼이 삭제된 것을 확인할 수 있습니다.
print(delays_df.head())

실행 결과: (위 결과와 동일하게 ARR_TIME이 제거된 상태로 원본이 갱신됩니다.)


4. 필요한 컬럼만 분할(추출)해서 새로운 데이터프레임 만들기 (loc)

머신러닝을 할 때 숫자 데이터(연착 시간, 거리 등)와 문자 데이터(항공사 이름, 공항 이름 등)를 따로 분리해서 작업해야 할 때가 많습니다.

이때는 지난 시간에 잠깐 언급되었던 .loc를 사용하여 원하는 컬럼들만 쏙쏙 뽑아내어 새로운 데이터프레임을 만들 수 있습니다.

[코드 & 실행 값]

Python
# 문자열(설명적인) 데이터만 있는 컬럼들(예: 항공사, 출발지, 도착지)만 뽑아내기
# : -> "모든 행을 다 가져와라"
# ['OP_CARRIER', 'ORIGIN', 'DEST'] -> "이 이름의 열들만 가져와라"

desc_df = delays_df.loc[:, ['OP_CARRIER', 'ORIGIN', 'DEST']]
print(desc_df.head())

실행 결과:

Plaintext
 
# 딱 우리가 명시한 3개의 컬럼만 담긴 새로운 데이터프레임이 탄생했습니다!
  OP_CARRIER ORIGIN DEST
0         WN    ABQ  BWI
1         WN    ABQ  DAL
2         WN    ABQ  DAL
3         WN    ABQ  DEN
4         WN    ABQ  DEN

💡 튜터의 마무리 핵심 요약!

  1. df.drop('컬럼명', axis=1): 보기 싫은 컬럼을 삭제할 때 씁니다.
  2. inplace=True: 삭제한 결과를 원본 데이터에 바로 덮어쓸 때 쓰는 강력한 마법입니다.
  3. df.loc[:, ['컬럼1', '컬럼2']]: 수많은 데이터 중 내가 딱 원하는 컬럼만 골라내어 쇼핑할 때 씁니다.

데이터프레임을 내 마음대로 자르고 붙이는 것은 데이터 분석의 기본기 중의 기본이에요! 코드를 보면서 "만약 axis=0을 쓰면 어떻게 될까?" 같은 호기심을 가지고 직접 바꿔보시면 실력이 훨씬 빨리 늘 거랍니다! 화이팅! 🚀

반응형