ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] pandas 설치 방법과 기본 활용 예시 (Linux 환경 기준)
    업무 자동화/Python 2025. 11. 25. 07:33

    1. pandas 개요

    1-1. 정의

    • pandas행/열 구조의 표 데이터를 다루는 라이브러리
    • 주요 객체
      • Series : 1차원 데이터 (인덱스를 가진 리스트 느낌)
      • DataFrame : 2차원 테이블 (엑셀 시트와 유사)

    1-2. Linux 환경에서 pandas의 위치

    • 많은 서버/배치/데이터 파이프라인이 Linux 상에서 돌아감
    • 로그 분석, 통계 처리, 간단한 ETL에 최적화된 도구
    • Jupyter, Airflow, cron 등과 함께 자동 리포팅/모니터링에 활용

     

    2. 사전 준비: Python & pip 확인

    터미널에서 다음 명령으로 버전을 확인합니다.

    python3 --version
    pip3 --version
    • Python 3.x 권장
    • 일부 배포판은 python 대신 python3를 사용합니다.

    배포판 예시:

    • Ubuntu / Debian 계열: apt
    • Fedora / RHEL / CentOS 계열: dnf 또는 yum
    • Arch 계열: pacman

     

    3. Linux에서 pandas 설치 방법

    3-1. 배포판 패키지 관리자로 설치

    3-1-1. Ubuntu / Debian 계열

    sudo apt update
    sudo apt install python3-pandas

    버전 확인:

    python3 -c "import pandas as pd; print(pd.__version__)"

    3-1-2. Fedora / RHEL / CentOS 계열

    sudo dnf install python3-pandas
    # 또는
    # sudo yum install python3-pandas

    3-1-3. Arch 계열

    sudo pacman -S python-pandas

    패키지 관리자는 편리하지만, pandas 버전이 최신이 아닐 수 있습니다.
    프로젝트별 버전 관리가 필요하다면 가상 환경 + pip를 사용하는 것이 좋습니다.

    3-2. (권장) 가상 환경(venv) + pip 설치

    # 1) 프로젝트 폴더 생성 및 이동
    mkdir -p ~/projects/pandas_linux && cd ~/projects/pandas_linux
    
    # 2) 가상 환경 생성
    python3 -m venv .venv
    
    # 3) 가상 환경 활성화 (bash/zsh)
    source .venv/bin/activate
    
    # 4) pip 최신화 + pandas 설치
    pip install --upgrade pip
    pip install pandas
    
    # 5) 설치 확인
    python -c "import pandas as pd; print(pd.__version__)"
    • 프롬프트에 (.venv)가 보이면 해당 가상환경 안에 있는 상태입니다.
    • 작업이 끝나면 deactivate 명령으로 빠져나올 수 있습니다.

    3-3. pyenv + pip (여러 Python 버전을 관리할 때)

    pyenv를 사용하면 Linux 환경에서 여러 Python 버전을 병행 설치/관리할 수 있습니다.

    3-3-1. pyenv 설치 (Ubuntu 예시)

    sudo apt update
    sudo apt install -y build-essential curl git   libssl-dev zlib1g-dev libbz2-dev libreadline-dev   libsqlite3-dev wget llvm libncurses5-dev libncursesw5-dev   xz-utils tk-dev libffi-dev liblzma-dev
    curl https://pyenv.run | bash

    ~/.bashrc 또는 ~/.zshrc에 다음을 추가:

    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"

    셸을 재시작하거나 source ~/.bashrc로 반영합니다.

    3-3-2. pyenv로 Python + pandas 설치

    # Python 버전 설치
    pyenv install 3.11.9
    
    # 특정 디렉터리에 버전 지정
    cd ~/projects/pandas_linux
    pyenv local 3.11.9
    
    # venv 생성 후 활성화
    python -m venv .venv
    source .venv/bin/activate
    
    # pandas 설치
    pip install pandas

    3-4. Anaconda / Miniconda 사용 (데이터 과학 통합 환경)

    이미 conda 계열을 사용 중이라면 Linux에서도 동일한 패턴으로 사용합니다.

    # 새 환경 생성
    conda create -n pandas_env python=3.11
    
    # 환경 활성화
    conda activate pandas_env
    
    # pandas 설치
    conda install pandas
    • JupyterLab, NumPy, matplotlib 등과 함께 통합 관리하기 좋은 선택지입니다.

     

    4. pandas 기본 문법 (Linux/Windows 공통)

    예제에서는 아래와 같이 import 합니다.

    import pandas as pd

    4-1. Series / DataFrame 생성

    import pandas as pd
    
    s = pd.Series([100, 200, 150], name="value")
    print(s)
    
    df = pd.DataFrame(
        {
            "host": ["app1", "app2", "app3"],
            "cpu": [0.4, 0.8, 0.3],
            "mem": [2.1, 3.5, 1.8],
        }
    )
    print(df)

    4-2. 로그/CSV 파일 읽기

    예: Linux 서버에서 수집한 로그를 가공하는 경우.

    import pandas as pd
    
    # 구분자가 콤마인 일반 CSV
    df = pd.read_csv("access_log.csv")
    
    print(df.head())

    구분자가 탭()인 경우:

    df_tab = pd.read_csv("access_log.tsv", sep="\t")

    4-3. 기본 조회와 필터링

    print(df.head())     # 상위 5행
    print(df.describe()) # 기본 통계 요약
    
    # 특정 컬럼 선택
    print(df["status_code"])
    print(df[["path", "response_time"]])
    
    # 조건 필터링: 응답 시간이 1초 이상
    slow = df[df["response_time"] >= 1.0]

    4-4. 정렬과 새로운 컬럼

    # 응답 시간 내림차순 정렬
    sorted_df = df.sort_values(by="response_time", ascending=False)
    
    # 초 단위 → ms(밀리초) 변환 컬럼 추가
    df["response_ms"] = df["response_time"] * 1000

    4-5. 결측값 처리

    import numpy as np
    
    # 결측 개수 확인
    print(df.isna().sum())
    
    # 결측값을 0으로 채우기 (예: 응답 크기)
    df["bytes"] = df["bytes"].fillna(0)
    
    # 결측이 있는 행 제거
    df_clean = df.dropna()

    4-6. groupby와 집계

    # 상태코드별 요청 수, 평균 응답 시간
    summary = (
        df.groupby("status_code")[["response_ms"]]
        .agg(["count", "mean", "max"])
    )
    print(summary)

    4-7. 피벗 테이블 예시

    pivot = pd.pivot_table(
        df,
        index="status_code",
        columns="method",           # GET / POST 등
        values="response_time",
        aggfunc="mean",
    )
    print(pivot)
    • HTTP 메소드별/상태코드별 평균 응답 시간을 한 번에 비교할 수 있습니다.

     

    5. 정리

    • pandas는 Linux 환경에서도 로그/CSV/Excel/DB 데이터를 다루는 핵심 도구
    • 설치 방법은 크게 네 가지
      1. 배포판 패키지 관리자 (apt, dnf, pacman)
      2. 가상 환경(venv) + pip (권장)
      3. pyenv + pip (Python 버전 관리용)
      4. Anaconda / Miniconda (데이터 과학 환경)
    • 알아두면 좋은 활용 포인트
      • CSV/로그 읽기, 컬럼/행 선택, 필터링
      • 결측값 처리, 정렬
      • groupby / pivot_table로 집계
      • cron과 연동한 자동 리포트 생성
Designed by Tistory.