2023년 6월 업데이트

 

안녕하세요. SQLER의 코난 김대우입니다. 

이번 강좌에서는, Python 머신러닝 강좌 - 8. Pandas DataFrame 컬럼(column) 분할(split)과 삭제(remove)를 진행토록 하겠습니다.

예제 노트북 파일 : 8. Pandas DataFrame 컬럼(column) 분할(split)과 삭제(remove) 

 

SQLER에서 진행되는 전체 Python / 머신러닝 강좌 목록

 

코드를 실행하기 위해서는, vscode에서 새로운 파일을 만들고 강좌 내용을 단계별로 copy&paste 해서 실행하시면 됩니다. 또는, Jupyter notebook을 실행하고 단계별로 실행하셔도 됩니다.

예를 들어, 8_pandas_column.ipynb를 생성하고 vscode에서 실행하면, Jupyter notebook이 실행됩니다.(vscode에서 실행도 가능하며, 웹브라우저에서도 실행 가능합니다.)

또는, github 리포지토리를 clone 하신 후, vscode나 Jupyter notebook에서, 위의 노트북 파일을 열면 됩니다. 
 

상세한 환경 구성이 필요하시다면, 개발자 커뮤니티 SQLER.com - Python 초급 강좌 목차 - 1. Python 개발 환경 구성 문서를 참조해 WSL, vscode, conda, jupyter notebook 설정을 모두 먼저 완료하시길 권장해 드립니다.

 

 

 

TL;DR

Pandas DataFrame에서 column을 분할하고 삭제하는 방법을 다룹니다. DataFrame에서 특정 column을 제거하려면 drop 함수를 사용하거나 특정 컬럼들만 조회해 별도의 DataFrame으로 만들 수 있습니다. 
 

 

Python 머신러닝 강좌 - 8. Pandas DataFrame 컬럼(column) 분할(split)과 삭제(remove)

머신러닝을 수행하기 위해 데이터를 준비할 때, DataFrame에서 특정 column을 제거해야 하는 경우가 있습니다.

이런 작업을 pandas dataframe에서 수행하는 과정을 이번 강좌에서 진행합니다.

 

여러 column이 있는 더 큰 CSV 파일을 로드하겠습니다. flight_delays.csv는 항공편 및 비행 지연에 대한 정보를 제공하는 파일입니다. (github에서 clone 한 리포지토리에 존재합니다.)

"c9-python-getting-started/even-more-python-for-beginners-data-tools/08 - Removing and splitting DataFrame columns/" 경로에 flight_delays.csv 파일이 존재합니다.

 

import pandas as pd

delays_df = pd.read_csv('flight_delays.csv')
delays_df.head()

 

☑️ 챗GPT 활용: CSV 파일을 열고 컬럼 이름과 일부 데이터를 복사해 프롬프트에 “이 데이터를 분석해 줘”라고 입력하면 데이터를 유추합니다.

 

DataFrame에서 column 제거

머신러닝을 수행하기 위해 데이터를 준비할 때, DataFrame에서 특정 column을 제거해야 하는 경우가 있습니다.

 

예를 들어: 비행 지연 시간(ARR_DELAY)을 예측하기 위해 머신러닝 모델을 트레이닝한다고 가정합니다.

모델이 예정된 도착 시간(CRS_ARR_TIME)과 실제 도착 시간(ARR_TIME)을 알고 있는 경우 예측 모델은 ARR_DELAY = ARR_TIME - CRS_ARR_TIME을 신속하게 이해합니다.

 

향후 항공편의 도착 시간을 예측할 때, 도착 시간(ARR_TIME)에 대한 값이 없어야 하고, 따라서 ARR_DELAY를 예측하도록 모델을 훈련할 때 feature로 사용되지 않도록 DataFrame에서 이 column을 제거해야 합니다.

# DataFrame delays_df에서 ARR_TIME column을 제거 

#delays_df = delays_df.drop(['ARR_TIME'],axis=1)
new_df = delays_df.drop(columns=['ARR_TIME'])
new_df.head()

 

inplace 파라미터를 사용하여 기존 DataFrame에서 바로 column을 삭제합니다.

# DataFrame delays_df에서 ARR_TIME column을 제거 

#delays_df = delays_df.drop(['ARR_TIME'],axis=1)
delays_df.drop(columns=['ARR_TIME'], inplace=True)
delays_df.head()

 

일반적으로 정량적인 값(예를 들어, 거리, 분, 무게) 및 숫자가 아닐 수 있는 정성적인 값(예를 들어, 항공편이 출발 한 공항, 항공편을 운항 한 항공사 등)을 수치화된 값 기반으로 예측하기 위해 다양한 기술을 사용합니다.

정량적 데이터는 머신러닝 모델 트레이닝을 하기 전에 별도의 DataFrame으로 이동할 수 있습니다.

 

또한, 예측을 하기 원하는 라벨 값(ARR_DELAY)과 예측에 사용될 값들을 각각 분리된 DataFrame에 넣어서 예측 작업을 수월하게 진행할 수 있습니다. 예측에 사용될 데이터를 일반적으로, feature 데이터라고 부릅니다.

 

이 과정을 수행하려면, 기존 DataFrame의 column에서 새 DataFrame을 생성해야 합니다. SQL로 보면, SELECT INTO와 유사합니다.

# desc_df라는 새 DataFrame을 생성합니다.
# 모든 row와 다음 컬럼들을 포함해야 합니다. 
# ORIGIN, DEST, OP_CARRIER_FL_NUM, OP_UNIQUE_CARRIER, TAIL_NUM

desc_df = delays_df.loc[:,['ORIGIN', 'DEST', 'OP_CARRIER_FL_NUM', 'OP_UNIQUE_CARRIER', 'TAIL_NUM']]
desc_df.head()

=== 결과 ===

  ORIGIN DEST OP_CARRIER_FL_NUM OP_UNIQUE_CARRIER TAIL_NUM
0 ABQ BWI 802 WN N221WN
1 ABQ BWI 3744 WN N8329B
2 ABQ DAL 1019 WN N920WN
3 ABQ DAL 1499 WN N480WN
4 ABQ DAL 3635 WN N227WN

 

수고하셨습니다.

 

 

파이썬 강좌 책 구매

강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다. 

 

책구매 링크: 챗GPT와 함께하는 파이썬 & 머신러닝 코딩 마스터 

파이썬-책구매링크.png

 

참고자료

개발자 커뮤니티 SQLER.com - Python 무료 강좌 - 기초, 중급, 머신러닝

c9-python-getting-started/even-more-python-for-beginners-data-tools/08 - Removing and splitting DataFrame columns at master · CloudBreadPaPa/c9-python-getting-started (github.com)

 

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 15689
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 9553
34 Azure Databricks - MLflow를 이용한 머신러닝(5) - Model 배포 file 코난(김대우) 2021.10.14 489
33 Azure Databricks - MLflow를 이용한 머신러닝(4) - Model Registry file 코난(김대우) 2021.10.12 324
32 Azure Databricks - MLflow를 이용한 머신러닝(3) - Project file 코난(김대우) 2021.10.08 293
31 Azure Databricks - MLflow를 이용한 머신러닝(2) - Tracking file 코난(김대우) 2021.10.08 296
30 Azure Databricks - MLflow를 이용한 머신러닝(1) file 코난(김대우) 2021.10.08 392
29 Azure Databricks - Spark에서 머신러닝 분산 처리 file 코난(김대우) 2021.10.07 145
28 PySpark cheat sheet 자료 - RDD, 데이터 처리 file 코난(김대우) 2021.10.01 116
27 PySpark을 이용한 머신러닝 튜토리얼 예제 코난(김대우) 2021.10.01 899
26 Form Recognizer로 문서에서 표 데이터 추출 file 코난(김대우) 2021.01.21 329
25 MLaaS - 12가지의 머신러닝을 먼저 도입한 기업들의 고민 file 코난(김대우) 2021.01.15 718
24 Python 머신러닝 강좌 - 15. Matplotlib으로 데이터 시각화(visualization) file 코난(김대우) 2021.01.09 679
23 Python 머신러닝 강좌 - 14. NumPy와 Pandas 코난(김대우) 2021.01.09 664
22 Python 머신러닝 강좌 - 13. 모델의 정확도 평가(accuracy evaluating) 코난(김대우) 2021.01.09 1621
21 Python 머신러닝 강좌 - 12. 머신러닝 모델 테스트 코난(김대우) 2021.01.09 956
20 Python 머신러닝 강좌 - 11. scikit-learn으로 선형회귀(linear regression) 모델 머신러닝 트레이닝 수행 코난(김대우) 2021.01.08 328
19 Python 머신러닝 강좌 - 10. 머신러닝을 위해 scikit-learn으로 트레이닝 데이터와 테스트 데이터 분할 코난(김대우) 2021.01.08 519
18 Python 머신러닝 강좌 - 9. 중복데이터와 결측값(missing value) 처리 코난(김대우) 2021.01.08 231
» Python 머신러닝 강좌 - 8. Pandas DataFrame 컬럼(column) 분할(split)과 삭제(remove) 코난(김대우) 2021.01.08 373
16 Python 머신러닝 강좌 - 7. Pandas DataFrame으로 CSV 파일 읽고 쓰기 코난(김대우) 2021.01.08 471
15 Python 머신러닝 강좌 - 6. CSV 파일과 주피터 노트북 file 코난(김대우) 2021.01.08 403





XE Login