본문 바로가기

Python/Pandas

ChatGPT로 Python pandas 알아보기 (1):소개/데이터 구조

반응형

ChatGPT로 Python pandas 알아보기 (1) : 소개/데이터 구조

이번 포스트에서는 ChatGPT로 Python의 pandas 모듈에 대해서 알아보는 시간을 가져 보고자 한다.
ChatGPT의 Noteable 플러그인을 사용하여 ChatGPT에게 pandas에 대해 간단하게 설명해달라고 요청하고 그 내용을 정리, 추가 내용을 작성해서 정리해 보았다.
우선 ChatGPT에게 pandas 공부를 위한 자료를 생성해달라고 했을 때 아래와 같은 카테고리로 작성을 진행한다고 한다.
  1. Pandas 라이브러리 소개
  2. Pandas의 주요 데이터 구조: Series와 DataFrame
  3. 데이터 불러오기와 저장하기
  4. 데이터 선택 및 필터링
  5. 데이터 정렬
  6. 데이터 그룹화 및 집계
  7. 결측치 처리
  8. 데이터 병합 및 조인
사실 해당 카테고리를 기준으로 Noteable에 작성해달라고 요청했을 때 많은 분량이었는지 Continue를 생각보다 많이 했어야 했다.
그리고 일부 주제에 대해 샘플 코드를 작성할 때도 무언가 문제가 있었는지 중간에 멈춰서 다시 처음부터 하기를 반복하다가 결국 1개의 카테고리마다 요청을 새로 했다...
아무튼 이번 포스트에서는 pandas 모듈에 대한 간략한 소개데이터 구조에 대해 알아보는 시간을 가져보고자 한다.
Pandas 라이브러리 소개
pandas 데이터 분석을 위한 고수준의 자료 구조와 데이터 분석 도구를 제공하는 파이썬 라이브러리이다.
pandas NumPy 기반에서 개발되어 numPy를 사용하는 애플리케이션에서 쉽게 사용할 수 있다.
pandas 데이터 조작과 분석에 특화되어 있으며, 특히 숫자 테이블과 시계열 데이터를 다루는 데 유용하다.
Pandas 특징
✔ 데이터 처리와 가공
pandas 다양한 형태와 다른 데이터 소스에서 데이터를 불러오고, 이를 쉽게 처리하고 가공할 수 있다.
CSV, Excel, SQL 데이터베이스, HDF5 등 다양한 형식의 파일을 읽고 쓸 수 있다.
✔ 데이터 정제
pandas 누락된 데이터나 NaN 값 등을 쉽게 찾아서 처리할 수 있다.
또한, 중복 데이터를 제거하거나, 데이터를 필터링하거나, 데이터를 변환하는 등의 기능을 제공한다.
✔ 데이터 조작
pandas 데이터를 병합하거나, 데이터를 재구성하거나, 데이터를 피벗하는 등의 복잡한 데이터 조작을 수행할 수 있다.
✔ 통계 분석
pandas 데이터에 대한 다양한 통계 분석 기능을 제공한다.
평균, 중앙값, 표준편차 등의 기초 통계량을 쉽게 계산할 수 있으며, 상관관계, 공분산 등의 고급 통계 분석도 가능하다.
✔ 시계열 데이터 처리
pandas 시계열 데이터를 다루는 데 특화되어 있다.
날짜 범위 생성, 빈도 변환, 이동(이동평균 등), 지연 등의 기능을 제공한다.
✔ 통합성
pandas Matplotlib, Seaborn, Statsmodels, Scikit-learn 등 다른 Python 라이브러리와 잘 통합되어 있어, 데이터 분석 작업을 원활하게 수행할 수 있다.
Pandas import
import pandas as pd
import numpy as np
pandas의 데이터 구조는 numpy를 기반으로 하기도 하고,
numpy는 다양한 수학적 연산을 제공하기 때문에 일반적으로 같이 import 해서 사용된다.
(여기서 'as pd'는 'pandas' 모듈을 'pd'로 사용하겠다 라는 뜻)
Pandas의 주요 데이터 구조
pandas에는 SeriesDataFrame이라는 두 가지 주요 데이터 구조가 있다.
✔ Series
Series는 일련의 객체를 담을 수 있는 1차원 배열 같은 자료 구조이다.
색인(index)이라고 하는 배열의 데이터에 연관된 이름을 가지고 있다.
다음은 간단한 Series의 예시이다.
s = pd.Series([1, 3, 5, np.nan, 6, 8])
위의 예시에서 보듯이, Series는 인덱스와 값이 함께 출력된다.
✔ DataFrame
DataFrame은 표 같은 스프레드시트 형식의 자료 구조로 여러 개의 컬럼이 있고 각 컬럼은 서로 다른 종류의 값(숫자, 문자열, 불리언 등)을 담을 수 있다.
DataFrame은 데이터를 담는 컨테이너로서 2차원 배열 데이터를 담는다.
배열의 각 원소는 다른 성질의 값을 담을 수 있다.
다음은 간단한 DataFrame의 예시이다.
data = {
    '이름': ['홍길동', '이몽룡', '성춘향', '변학도'],
    '나이': [25, 22, 21, 23],
    '성별': ['남', '남', '여', '남']
}
df = pd.DataFrame(data)
위의 예시에서 보듯이, DataFrame은 인덱스와 컬럼 이름이 함께 출력된다.
인덱스는 왼쪽에, 컬럼 이름은 상단에 위치한다.
그리고 DataFrame의 각 컬럼은 Series이다.
DataFrame은 이러한 Series 객체들이 모여서 각각의 컬럼을 형성하고, 이 컬럼들이 모여서 테이블 형태의 2차원 데이터 구조를 만든다.
따라서 DataFrame의 각 컬럼을 선택하면, 그 결과는 Series 객체가 된다.
pandas 모듈에 대한 간략한 소개와 데이터 구조에 대해 알아보는 시간을 가졌다.
필자의 경우 알고 있는 내용이긴 하지만 이번 포스트와 앞으로 작성할 포스트를 통해 복습해 보는 시간을 가져볼까 한다.
그리고 이번 포스트를 작성하면서 Noteable에서 출력해 주는 pandas Series와 DataFrame은 굉장히 놀라웠다.
결과물에 필터링 기능과 시각화 자료를 같이 보여준다니;
이번에 pandas를 공부해 보면서 Noteable 자체의 기능에 대해서도 한번 탐구해 보는 시간을 가져야겠다.
반응형

loading