내 잡다한 노트

Pandas 란? 본문

데이터엔지니어

Pandas 란?

peanutwalnut 2024. 12. 27. 13:58

PandasPython에서 사용되는 데이터 분석 및 조작을 위한 강력한 라이브러리입니다. Pandas는 데이터를 효율적으로 다룰 수 있는 DataFrameSeries라는 자료구조를 제공하며, 데이터를 정리, 조작, 분석하는 작업을 직관적이고 간단하게 수행할 수 있게 합니다.

 

 

1. Pandas의 주요 특징

  1. 빠르고 효율적인 데이터 구조:
    • Series: 1차원 배열 형태의 데이터 구조(예: 열 데이터).
    • DataFrame: 2차원 표 형태의 데이터 구조(예: 행과 열로 구성된 데이터).
  2. 다양한 데이터 처리 기능:
    • 결측치 처리 (NaN 값 다루기)
    • 데이터 필터링 및 선택
    • 데이터 정렬 및 그룹화
    • 데이터 병합 및 결합
  3. 다양한 데이터 소스 지원:
    • CSV, Excel, SQL, JSON 등 다양한 파일 형식에서 데이터를 읽고 쓸 수 있습니다.
  4. 데이터 변환 및 조작:
    • 열 추가/삭제, 데이터 필터링, 연산 수행 등 데이터 정리를 위한 다양한 기능 제공.
  5. 통계 및 요약 정보:
    • 평균, 중간값, 합계 등 기본 통계 기능 제공.
    • 데이터 요약 및 기술 통계를 간단하게 계산.

 

 

2. Pandas의 주요 자료구조

2.1. Series

  • 1차원 배열 형태의 데이터로, 행 번호(인덱스)와 값으로 구성됩니다
  • import pandas as pd

    data = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
    print(data)
     
    a    10
    b    20
    c    30
    d    40
    dtype: int64
     

2.2. DataFrame

  • 2차원 표 형태의 데이터 구조로, 행과 열로 구성됩니다.
  • data = {
        "Name": ["Alice", "Bob", "Charlie"],
        "Age": [25, 30, 35],
        "City": ["New York", "Los Angeles", "Chicago"]
    }
    df = pd.DataFrame(data)
    print(df)
  •      Name  Age         City
    0   Alice   25     New York
    1     Bob   30  Los Angeles
    2  Charlie   35      Chicago

 

3. Pandas의 주요 기능

3.1. 데이터 읽기 및 쓰기

  • CSV, Excel, SQL 등 다양한 형식의 파일을 읽고 쓸 수 있습니다.
  • # CSV 파일 읽기
    df = pd.read_csv('data.csv')

    # Excel 파일 저장
    df.to_excel('output.xlsx')
  • 3.2. 데이터 필터링 및 선택
    • 특정 열이나 행 선택, 조건에 따라 데이터 필터링.
    • # 특정 열 선택
      df['Name']

      # 조건에 따른 데이터 필터링
      df[df['Age'] > 30]
  • 3.5. 데이터 요약 및 그룹화
    • 데이터 요약 정보 제공
    • # 기본 통계 정보
      df.describe()

      # 그룹별 데이터 연산
      df.groupby('City')['Age'].mean()

 

5. Pandas의 한계

  1. 메모리 사용량:
    • 데이터가 메모리에 저장되므로, 데이터 크기가 메모리 용량을 초과하면 성능 문제가 발생할 수 있습니다.
    • 대규모 데이터 처리를 위해서는 Dask 또는 PySpark와 같은 라이브러리를 고려해야 합니다.
  2. 병렬 처리 제한:
    • Pandas는 단일 스레드로 작업을 수행하므로, 병렬 처리를 요구하는 작업에서는 성능이 제한될 수 있습니다.
  3. 속도:
    • 매우 큰 데이터셋의 경우, NumPy 또는 더 전문화된 툴에 비해 속도가 느릴 수 있습니다.