머신러닝 & AI 개발자 Tip & 강좌 게시판

Data Scientist와 개발자를 위한 머신러닝, AI 등 개발 Tip과 강좌 게시판 입니다. 일반적인 머신러닝은 물론 딥러닝(Tensorflow, Keras, PyTorch 등), 인공지능 관련 업무를 진행하면서 얻은 Tip이나 강좌, 새로운 소식을 적어 주시면 다른 개발자 분들에게 큰 도움이 됩니다.

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

이번 강좌에서는, Python 머신러닝 강좌 - 3. Pandas 소개를 진행토록 하겠습니다.

예제 노트북 파일 : pandas와 Series와 DataFrame 예제 노트북 파일

 

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

 

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

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

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

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

 

환경구성 참고링크

개발자 커뮤니티 SQLER.com - Python 초급 강좌 목차 - 1. Python 개발 환경 구성 

개발자 커뮤니티 SQLER.com - Python 머신러닝 강좌 - 1. 주피터 노트북(Jupyter Notebook) 구성

개발자 커뮤니티 SQLER.com - Python 머신러닝 강좌 - 2. Anaconda와 Conda 구성

 

Python 머신러닝 강좌 - 3. Pandas 소개

 

pandas

pandas 데이터 분석을 수행할 수 있는 여러 데이터 구조(data structure)와 도구가 포함 된 오픈 소스 Python 라이브러리입니다. 머신러닝 작업을 할때 필요한 여러 데이터 전처리 작업을 수행하기에 적절한 거의 모든 기능들을 pandas에서 제공하고 있습니다. 특히, SQLER 분들처럼, DB에 대한 경험이 있고, 쿼리 작성 경험이 있다면, 빠르게 pandas를 익힐 수 있습니다. SQLER의 강좌에서 많은 예제를 차근차근 다룰 예정이고, 기본 머신러닝 시리즈 강좌 외에 pandas와 numpy 상세 시리즈 강좌도 진행 예정이니, 많은 도움 되시길 바랍니다.

 

pands는 두가지의 데이터 개체로 나뉩니다. "Series"와 "DataFrame" 입니다.

 

pandas Series와 DataFrame 

  • Series는 1차원 배열을 저장

  • DataFrame 2차원 배열과 여러 다른 데이터 타입들을 저장 가능

 

bash 쉘에서 아래 pip 명령을 이용해 pandas를 설치 가능합니다.

pip install pandas

(conda 환경을 activate 했는지 다시 체크하세요. 현재 pands를 설치하는 conda 환경에서만, padnas를 사용 가능합니다.)

 

pandas Series

pandas Series는 1차원 배열을 저장 가능하고 Python list와 유사합니다.

import pandas as pd

airports = pd.Series([
                      'Seattle-Tacoma', 
                      'Dulles', 
                      'London Heathrow', 
                      'Schiphol', 
                      'Changi', 
                      'Pearson', 
                      'Narita'
                      ])

# 노트북을 사용할 때 print 문을 사용할 수 있습니다.
# print(airports) 으로 변수 내용을 출력, 검사 할 수 있습니다.
# 또는 개체 이름을 셀에 입력하여 화면에 값을 출력 할 수 있습니다.

airports

실행하면, series 데이터가 출력된 것을 보실 수 있습니다.

(혹시, module을 찾을 수 없음 오류가 발생할 경우, conda 환경을 activate 하셨는지 체크하시고, jupyter나 vscode의 실행환경이 위의 pip를 설치한 conda 환경과 일치하는지 다시 한번 체크하세요. - conda 환경 구성 문서 참조)

 

index를 사용하여 Series의 개별 값을 참조 가능합니다.

airports[2]

 

Loop를 사용해 Series 의 모든 값을 iterate 할 수 있습니다.

for value in airports:
    print(value) 

 

Series는 이렇게 list와 유사합니다. 일반적으로 list나 dict 처리 후 이렇게 Series로 데이터를 처리한 다음, DataFrame에 merge할때 자주 사용합니다. 이렇게 여러개의 1차완 배열 형태인 Series가 모여서 2차원 배열 형태인 DataFrame이 됩니다.

 

DataFrame

pandas로 작업 할 때, 대부분의 경우 2 차원 배열을 다루게 됩니다. Pandas ** DataFrame **은 2 차원 array를 저장할 수 있습니다.

airports = pd.DataFrame([
                        ['Seatte-Tacoma', 'Seattle', 'USA'],
                        ['Dulles', 'Washington', 'USA'],
                        ['London Heathrow', 'London', 'United Kingdom'],
                        ['Schiphol', 'Amsterdam', 'Netherlands'],
                        ['Changi', 'Singapore', 'Singapore'],
                        ['Pearson', 'Toronto', 'Canada'],
                        ['Narita', 'Tokyo', 'Japan']
                        ])

airports

 

columns 파라미터를 사용하여 DataFrame을 만들 때 column의 이름을 지정 가능합니다.

airports = pd.DataFrame([
                        ['Seatte-Tacoma', 'Seattle', 'USA'],
                        ['Dulles', 'Washington', 'USA'],
                        ['London Heathrow', 'London', 'United Kingdom'],
                        ['Schiphol', 'Amsterdam', 'Netherlands'],
                        ['Changi', 'Singapore', 'Singapore'],
                        ['Pearson', 'Toronto', 'Canada'],
                        ['Narita', 'Tokyo', 'Japan']
                        ],
                        columns = ['Name', 'City', 'Country']
                        )

airports 

 

실행결과

pandas_dataframe_result.png

 

이렇게 처음으로, pandas로 Series와 DataFrame을 만들고 조회하는 방법에 대해서 살펴 보았습니다.

실제 이렇게 DataFrame을 직접 만들기 보다는 외부 데이터 소스(CSV 파일이나 SQL과 같은 DBMS)로부터 가져오는 경우가 더 많죠. 아울러, 단순 처리가 아니라, SQL쿼리만큼 다양하고 유연한 기능을 pandas가 제공합니다.

 

이후 강좌에서 더 많은 내용을 다룰 예정이니, 많은 도움 되시길 바랍니다.

 

참고자료

pandas - Python Data Analysis Library (pydata.org)

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

c9-python-getting-started/03 - Pandas Series and DataFrame.ipynb at master · CloudBreadPaPa/c9-python-getting-started (github.com)

개발자 커뮤니티 SQLER.com - Python 초급 강좌 목차 - 1. Python 개발 환경 구성 

개발자 커뮤니티 SQLER.com - Python 머신러닝 강좌 - 1. 주피터 노트북(Jupyter Notebook) 구성

개발자 커뮤니티 SQLER.com - Python 머신러닝 강좌 - 2. Anaconda와 Conda 구성

 

No. Subject Author Date Views
26 Form Recognizer로 문서에서 표 데이터 추출 file 코난(김대우) 2021.01.21 203
25 MLaaS - (1) 12가지의 머신러닝을 먼저 도입한 기업들의 고민 file 코난(김대우) 2021.01.15 355
24 Python 머신러닝 강좌 - 15. Matplotlib으로 데이터 시각화(visualization) file 코난(김대우) 2021.01.09 210
23 Python 머신러닝 강좌 - 14. NumPy와 Pandas 코난(김대우) 2021.01.09 174
22 Python 머신러닝 강좌 - 13. 모델의 정확도 평가(accuracy evaluating) 코난(김대우) 2021.01.09 130
21 Python 머신러닝 강좌 - 12. 머신러닝 모델 테스트 코난(김대우) 2021.01.09 117
20 Python 머신러닝 강좌 - 11. scikit-learn으로 선형회기(linear regression) 모델 머신러닝 트레이닝 수행 코난(김대우) 2021.01.08 123
19 Python 머신러닝 강좌 - 10. 머신러닝을 위해 scikit-learn으로 트레이닝 데이터와 테스트 데이터 분할 코난(김대우) 2021.01.08 73
18 Python 머신러닝 강좌 - 9. 중복데이터와 결측값(missing value) 처리 코난(김대우) 2021.01.08 60
17 Python 머신러닝 강좌 - 8. Pandas DataFrame 컬럼(column) 분할(split)과 삭제(remove) 코난(김대우) 2021.01.08 76
16 Python 머신러닝 강좌 - 7. Pandas DataFrame으로 CSV 파일 읽고 쓰기 코난(김대우) 2021.01.08 47
15 Python 머신러닝 강좌 - 6. CSV 파일과 주피터 노트북 file 코난(김대우) 2021.01.08 62
14 Python 머신러닝 강좌 - 5. Pandas DataFrame에 질의(Query) 코난(김대우) 2021.01.07 56
13 Python 머신러닝 강좌 - 4. Pandas DataFrame file 코난(김대우) 2021.01.07 42
» Python 머신러닝 강좌 - 3. Pandas 소개 file 코난(김대우) 2021.01.07 74
11 Python 머신러닝 강좌 - 2. Anaconda와 Conda 구성 file 코난(김대우) 2021.01.06 89
10 Jupyter notebook 단축키 등의 cheat sheet file 코난(김대우) 2021.01.06 72
9 Python 머신러닝 강좌 - 1. 주피터 노트북(Jupyter Notebook) 구성 file 코난(김대우) 2021.01.06 246
8 2021년 머신러닝과 인공지능(AI) 트렌드 - MLaaS (서비스로의 머신러닝) file 코난(김대우) 2020.12.29 201
7 머신러닝을 시작하는 개발자를 위한 - (4) 2021년의 ML Trend - MLaaS와 MLOps(Machine Learning + DevOps) 코난(김대우) 2020.12.28 182





XE Login