데이터 분석가를 꿈꾼다면 강력한 데이터 분석 라이브러리인 pandas를 사용하여 데이터를 다루는 것은 필수 기술입니다. pandas는 배우기 쉽지만 관용적인 사용법과 함수, 메서드 호출을 익히기 위해서는 연습이 필요합니다. 다양한 데이터 랭글링 작업을 통해 pandas의 강력한 기능을 익히는 방법을 소개합니다.
※ 이 글은 아래 기사 내용을 토대로 작성되었습니다만, 제 개인 의견이나 추가 자료들이 다수 포함되어 있습니다. 원문 내용이 궁금하신 분은 URL을 살펴보세요.
- 원문: 7 Steps to Mastering Data Wrangling with Pandas and Python
- URL: https://www.kdnuggets.com/7-steps-to-mastering-data-wrangling-with-pandas-and-python
1단계: Python 및 SQL 기초
데이터 분석이나 데이터 과학에 뛰어들고 싶다면 몇 가지 기본적인 프로그래밍 기술을 익혀야 합니다. 여기서 Python에 중점을 둡니다.
Python 및 웹 스크래핑 배우기
Python 기술을 새로 배우려면 다음 리소스 중 하나를 사용할 수 있습니다.
Python은 배우기 쉽고 구축을 시작하기 쉽습니다. 다음 주제에 집중할 수 있습니다.
- Python 기본 사항: Python 구문, 데이터 유형, 제어 구조, 내장 데이터 구조, 기본 객체 지향 프로그래밍(OOP) 개념을 숙지하세요.
- 웹 스크래핑 기본 사항: HTML 구조, HTTP requests, HTML 콘텐츠 구문 분석 등 웹 스크래핑의 기본 사항을 알아봅니다. BeautifulSoup와 같은 라이브러리와 웹 스크래핑 작업 요청에 대해 알아보세요.
- 데이터베이스에 연결 : SQLAlchemy 또는 psycopg2와 같은 라이브러리를 사용하여 Python을 데이터베이스 시스템에 연결하는 방법을 알아보세요. Python에서 SQL 쿼리를 실행하고 데이터베이스에서 데이터를 검색하는 방법에 대한 이해가 필요합니다.
필수는 아니지만 Python용 Jupyter Notebooks이나 웹 스크래핑을 사용하면 학습 및 실험을 위한 대화형 환경을 제공할 수 있습니다.
SQL 배우기
SQL은 데이터 분석에 필수적인 도구입니다. SQL을 배우면 pandas를 배우는 데 어떻게 도움이 될까요? SQL 쿼리 작성의 논리를 알고 나면 해당 개념을 바꾸어 Pandas 데이터 프레임에서 유사한 작업을 수행하는 것이 매우 쉽습니다.
관계형 데이터베이스를 생성, 수정, 쿼리 하는 방법을 포함하여 SQL(Structured Query Language)의 기본 사항을 알아보세요. SELECT, INSERT, UPDATE, DELETE, JOIN과 같은 SQL 명령을 이해해야 합니다. SQL 기술을 배우고 새로 고치려면 다음 리소스를 사용할 수 있습니다.
이 단계에 설명된 기술을 익히면 Python 프로그래밍, SQL 쿼리 및 웹 스크래핑에 대한 탄탄한 기초를 갖추게 됩니다. 이러한 기술은 더욱 발전된 데이터 과학 및 분석 기술을 위한 구성 요소 역할을 합니다.
2단계: 다양한 소스에서 데이터 로드
작업 환경을 설정합니다. Pandas(및 NumPy)를 설치합니다. 가상 환경을 사용하여 프로젝트 수준 설치를 관리하는 등의 모범 사례를 따르세요. 앞에서 언급했듯이 pandas는 Python의 데이터 분석을 위한 강력한 라이브러리입니다. 그러나 pandas 작업을 시작하기 전에 기본 데이터 구조인 pandas DataFrame 및 series에 익숙해져야 합니다.
데이터를 분석하려면 먼저 소스에서 Pandas 데이터 프레임으로 데이터를 로드해야 합니다. CSV 파일, Excel 스프레드시트, 관계형 데이터베이스 등과 같은 다양한 소스에서 데이터를 수집하는 방법을 배우는 것이 중요합니다. 개요는 다음과 같습니다.
- CSV 파일에서 데이터 읽기: 쉼표로 구분된 값(CSV) 파일에서 데이터를 읽고 DataFrame에 로드하는 pd.read_csv() 함수를 사용하는 방법을 알아봅니다. 파일 경로, 구분 기호, 인코딩 등을 지정하는 등 가져오기 프로세스를 사용자 정의하는 데 사용할 수 있는 매개변수를 이해합니다.
- Excel 파일에서 데이터 가져오기: Microsoft Excel 파일(.xlsx)에서 데이터를 가져와 DataFrame에 저장할 수 있는 pd.read_excel() 함수를 살펴보세요. 여러 시트를 처리하고 가져오기 프로세스를 사용자 정의하는 방법을 이해합니다.
- JSON 파일에서 데이터 로드: pd.read_json() 함수를 사용하여 JSON(JavaScript Object Notation) 파일에서 데이터를 가져오고 DataFrame을 만드는 방법을 알아보세요. 다양한 JSON 형식과 중첩된 데이터를 처리하는 방법을 이해합니다.
- Parquet 파일에서 데이터 읽기: 열 형식 스토리지 파일 형식인 Parquet 파일에서 데이터를 가져올 수 있는 pd.read_parquet() 함수를 이해합니다. Parquet 파일이 빅 데이터 처리 및 분석에 어떤 이점을 제공하는지 알아보세요.
- 관계형 데이터베이스 테이블에서 데이터 가져오기: 관계형 데이터베이스에서 데이터를 쿼리하고 이를 DataFrame에 로드할 수 있는 pd.read_sql() 함수에 대해 알아봅니다. 데이터베이스에 대한 연결을 설정하고, SQL 쿼리를 실행하고, 데이터를 Pandas로 직접 가져오는 방법을 이해합니다.
3단계: 행과 열 선택, DataFrame 필터링
다음으로, Pandas DataFrame에서 특정 행과 열을 선택하는 방법과 특정 기준에 따라 데이터를 필터링하는 방법을 배워야 합니다. 데이터를 처리하고 데이터에서 관련 정보를 추출하려면 이러한 기술을 배우는 것이 필수적입니다.
DataFrame 인덱싱 및 슬라이싱
레이블이나 정수 위치를 기반으로 특정 행과 열을 선택하는 방법을 이해합니다. .loc[]이나 .iloc[] 및 부울 인덱싱과 같은 방법을 사용하여 DataFrames를 분할하고 인덱싱하는 방법을 배워야 합니다.
- .loc[]: 레이블 기반 색인 생성에 사용되며 레이블을 기준으로 행과 열을 선택할 수 있습니다.
- .iloc[]: 정수 기반 인덱싱에 사용되며 , 정수 위치에 따라 행과 열을 선택할 수 있습니다.
- 부울 인덱싱: 이 기술에는 부울 표현식을 사용하여 특정 조건에 따라 데이터를 필터링하는 작업이 포함됩니다.
이름으로 열을 선택하는 것은 일반적인 작업입니다. 따라서 열 이름을 사용하여 특정 열에 액세스하고 검색하는 방법을 알아보세요. 단일 열 선택을 사용하고 한 번에 여러 열을 선택하는 방법을 연습해 보세요.
DataFrame 필터링
데이터프레임을 필터링할 때는 다음 사항을 숙지해야 합니다.
- 조건으로 필터링: 부울 표현식을 사용하여 특정 조건에 따라 데이터를 필터링하는 방법을 이해합니다. 비교 연산자(>, <, == 등)를 사용하여 특정 기준을 충족하는 행을 추출하는 필터를 만드는 방법을 알아보세요.
- 필터 결합: &(and), |(or), ~(not)와 같은 논리 연산자를 사용하여 여러 필터를 결합하는 방법을 알아보세요. 더 복잡한 필터링 조건을 만들 수 있습니다.
- isin() 사용: 지정된 목록에 값이 있는지 여부에 따라 데이터를 필터링하는 isin() 메서드를 사용하는 방법을 알아봅니다. 특정 열의 값이 제공된 항목과 일치하는 행을 추출하는 데 유용합니다.
이 단계에 설명된 개념을 활용하면 pandas 데이터 프레임에서 데이터를 효율적으로 선택하고 필터링하여 가장 관련성이 높은 정보를 추출할 수 있는 능력을 얻게 됩니다.
리소스에 대한 빠른 참고 사항
3~6단계에서는 다음 리소스를 사용하여 학습하고 연습할 수 있습니다.
4단계: 데이터 세트 탐색 및 정리
지금까지 Pandas 데이터 프레임에 데이터를 로드하고, 열을 선택하고, 데이터 프레임을 필터링하는 방법을 살펴보았습니다. 4단계에서는 pandas를 사용하여 데이터세트를 탐색하고 정리하는 방법을 알아봅니다. 데이터를 탐색하면 구조를 이해하고, 잠재적인 문제를 식별하고, 추가 분석 전에 통찰력을 얻는 데 도움이 됩니다. 데이터 정리에는 누락된 값 처리, 중복 처리 및 데이터 일관성 보장이 포함됩니다.
- 데이터 검사: head(), tail(), info(), describe() 및 shape속성과 같은 메서드를 사용하여 데이터 세트의 개요를 얻는 방법을 알아보세요 . 첫 번째/마지막 행, 데이터 유형, 요약 통계 및 데이터 프레임의 차원에 대한 정보를 제공합니다.
- 누락된 데이터 처리: 데이터 세트에서 누락된 값을 처리하는 것의 중요성을 이해합니다. isna(), isnull(), dropna(), fillna() 등을 사용하여 누락된 데이터를 식별하고 처리하는 방법을 알아보세요.
- 중복 처리: duplicated(), drop_duplicates() 메서드를 사용하여 중복 행을 감지하고 제거하는 방법을 알아보세요. 중복은 분석 결과를 왜곡할 수 있으므로 데이터 정확성을 보장하기 위해 해결해야 합니다.
- 문자열 열 정리: .str접근자와 문자열 메서드를 사용하여 공백 제거, 하위 문자열 추출 및 교체, 문자열 분할 및 결합 등과 같은 문자열 정리 작업을 수행하는 방법을 알아봅니다.
- 데이터 유형 변환: astype() 메서드를 사용하여 데이터를 적절한 유형으로 변환하면 데이터가 정확하게 표현되고 메모리 사용이 최적화됩니다.
또한 간단한 시각화를 사용하여 데이터세트를 탐색하고 데이터 품질 검사를 수행할 수 있습니다.
데이터 탐색 및 데이터 품질 검사
시각화 및 통계 분석을 사용하여 데이터에 대한 통찰력을 얻으세요. pandas 및 Matplotlib 또는 Seaborn과 같은 라이브러리를 사용하여 기본 플롯을 생성하여 데이터의 분포, 관계 및 패턴을 시각화하는 방법을 알아보세요.
데이터 품질 검사를 수행하여 데이터 무결성을 보장합니다. 여기에는 값이 예상 범위 내에 있는지 확인하고, 이상값을 식별하고, 관련 열 간의 일관성을 확인하는 작업이 포함될 수 있습니다.
이제 데이터 세트를 탐색하고 정리하는 방법을 알게 되어 더욱 정확하고 신뢰할 수 있는 분석 결과를 얻을 수 있습니다. 적절한 데이터 탐색 및 정리는 성공적인 데이터 분석 및 모델링을 위한 기반을 마련하므로 모든 데이터 과학 프로젝트에서 매우 중요합니다.
5단계: 변환, GroupBy 및 집계
이제 Pandas DataFrames 작업에 익숙해졌으며 행과 열 선택, 필터링, 누락된 데이터 처리와 같은 기본 작업을 수행할 수 있습니다.
다양한 기준에 따라 데이터를 요약하려는 경우가 많습니다. 그렇게 하려면 데이터 변환을 수행하고, GroupBy 기능을 사용하고, 데이터 세트에 다양한 집계 방법을 적용하는 방법을 배워야 합니다. 이는 다음과 같이 더 세분화될 수 있습니다.
- 데이터 변환: 열 추가 또는 이름 바꾸기, 불필요한 열 삭제, 다양한 형식이나 단위 간 데이터 변환 등의 기술을 사용하여 데이터를 수정하는 방법을 알아보세요.
- 함수 적용: 데이터 프레임에 사용자 정의 함수를 적용하는 apply() 메서드를 이해하면 보다 유연하고 사용자 정의된 방식으로 데이터를 변환할 수 있습니다.
- 데이터 재구성: 데이터를 재구성하고 특정 분석 요구 사항에 적합하게 만들 수 있는 melt()나 stack() 같은 추가 데이터 프레임 메서드를 살펴보세요.
- GroupBy 기능: Groupby() 메서드를 사용하면 특정 열 값을 기준으로 데이터를 그룹화할 수 있습니다. 이를 통해 그룹별로 집계를 수행하고 데이터를 분석할 수 있습니다.
- 집계 함수: 합계, 평균, 개수, 최소값, 최대값과 같은 일반적인 집계 함수에 대해 알아보세요. 이러한 함수는 groupby() 와 함께 데이터를 요약하고 각 그룹에 대한 기술 통계를 계산하는 데 사용됩니다.
이 단계에 설명된 기술은 데이터를 효과적으로 변환, 그룹화 및 집계하는 데 도움이 됩니다.
6단계: Join 및 피벗 테이블
다음으로, pandas를 사용하여 데이터 조인을 수행하고 피벗 테이블을 만드는 방법을 배워 레벨을 높일 수 있습니다. 조인을 사용하면 공통 열을 기반으로 여러 데이터프레임의 정보를 결합할 수 있습니다. 피벗 테이블을 사용하면 데이터를 표 형식으로 요약하고 분석할 수 있습니다. 이 단계에서 알아야 할 사항은 다음과 같습니다.
- DataFrame 병합: 내부 조인, 외부 조인, 왼쪽 조인, 오른쪽 조인과 같은 다양한 유형의 조인을 이해합니다. 공유 열을 기반으로 데이터 프레임을 결합하는 merge() 함수를 사용하는 방법을 알아보세요 .
- 연결: concat() 함수를 사용하여 데이터프레임을 수직 또는 수평으로 연결하는 방법을 알아봅니다. 이는 유사한 구조의 데이터프레임을 결합할 때 유용합니다.
- 인덱스 조작: 데이터 프레임에서 인덱스를 설정, 재설정, 이름 바꾸는 방법을 이해합니다. 조인을 수행하고 피벗 테이블을 효과적으로 생성하려면 적절한 인덱스 조작이 필수적입니다.
- 피벗 테이블 만들기: pivot_table() 메서드를 사용하면 데이터를 요약 및 교차표 형식으로 변환할 수 있습니다. 원하는 집계 함수를 지정하고 특정 열 값을 기준으로 데이터를 그룹화하는 방법을 알아보세요.
선택적으로 여러 열을 인덱스 수준으로 사용하여 데이터를 분석할 수 있는 다중 수준 피벗 테이블을 만드는 방법을 탐색할 수 있습니다. 충분히 연습하면 조인을 사용하여 여러 데이터 프레임의 데이터를 결합하고 유용한 피벗 테이블을 만드는 방법을 알게 됩니다.
7단계: 데이터 대시보드 구축
pandas를 사용한 데이터 랭글링의 기본 사항을 마스터했으므로 이제 데이터 대시보드를 구축하여 기술을 테스트해 볼 차례입니다. 대화형 대시보드를 구축하면 데이터 분석 및 시각화 기술을 모두 연마하는 데 도움이 됩니다. 이 단계에서는 Python의 데이터 시각화에 익숙해야 합니다. 데이터 시각화 - Kaggle Learn은 포괄적인 소개입니다.
데이터에서 기회를 찾으려면 프로젝트 포트폴리오가 필요하며 Jupyter Notebook의 데이터 분석 그 이상을 수행해야 합니다. Python으로 기반을 구축하고 Python 라이브러리 Streamlit을 사용하여 대시보드 구축을 시작할 수 있습니다. Streamlit은 수백 줄의 HTML 및 CSS 작성에 대해 대화형 대시보드를 구축하는 데 도움이 됩니다.
Streamlit을 배우기 위한 영감이나 리소스를 찾고 있다면 주가, 스포츠, 생물정보학 데이터 전반의 프로젝트를 위해 Python 및 Streamlit을 사용하여 12개의 데이터 과학 앱 구축이라는 무료 과정을 확인해 보세요 . 실제 데이터 세트를 선택하고 분석한 후 데이터 대시보드를 구축하여 분석 결과를 보여주세요.
'Python' 카테고리의 다른 글
Python If-Else 문을 사용하는 방법 (2) | 2023.12.01 |
---|---|
Python과 데이터베이스를 사용하여 등록 앱을 만드는 방법 (2) | 2023.11.14 |
데이터 구조와 알고리즘 코딩 과제를 연습할 수 있는 사이트 7개 (0) | 2023.11.13 |
모든 Python 프로그래머가 알아야 할 7가지 목록 관련 함수 (4) | 2023.11.09 |
PyXLL을 사용하여 Python을 Excel에 통합하는 방법 (0) | 2023.10.19 |