ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2월 1주차-2/5(1)]Pandas 기초: 데이터 분석을 위한 필수 라이브러리
    Why Not SW CAMP 5기/수업 기록 2025. 2. 5. 17:34

    데이터 분석을 시작할 때 가장 많이 사용하는 라이브러리 중 하나가 Pandas입니다. Pandas는 빠르고 효율적인 데이터 처리를 도와주는 Python 패키지로, 다양한 형태의 데이터를 쉽게 다룰 수 있도록 최적화되어 있습니다.

    이번 글에서는 Pandas의 기본 개념과 활용법을 정리해보겠습니다.


    📌 Pandas란?

    Pandas는 데이터 분석을 위한 파이썬 라이브러리로, 특히 표 형태(테이블 구조)의 데이터를 다루는 데 최적화되어 있습니다.

    ✅ Pandas의 주요 특징

    1. 빠르고 효율적인 데이터 처리
    2. 다양한 데이터 형태 지원
      • 시계열 데이터, 레이블이 있는 데이터, 관측 데이터 등
    3. Series(1차원)와 DataFrame(2차원) 제공
    4. 결측값(null) 처리 가능
    5. 데이터 추가, 삭제, 정렬, 조작 용이

    ✅ Pandas로 할 수 있는 일

    • 리스트, 딕셔너리, Numpy 배열 등을 DataFrame으로 변환
    • CSV, Excel, JSON 파일 등 외부 데이터 불러오기
    • 웹 사이트에서 원격 데이터 가져오기
    • 데이터 조회 및 검사 (평균, 상관관계, 개수 등)
    • 필터링, 정렬, 그룹화
    • 데이터 정제 및 전처리

    🔹 Pandas의 기본 자료구조

    Pandas는 크게 SeriesDataFrame이라는 두 가지 데이터 구조를 제공합니다.

    1️⃣ Series (1차원 데이터)

    Series는 1차원 배열 구조이며, 리스트와 비슷하지만 인덱스를 직접 설정할 수 있습니다.

    import pandas as pd  
    
    # Series 생성
    idx = ['2025-02-19', '2025-02-18', '2025-02-17']
    data = [92600, 92400, 92100]
    
    sample = pd.Series(data, index=idx)
    print(sample)
    
    # 특정 인덱스 데이터 출력
    print(sample['2025-02-19'])  # 92600
    
    2025-02-19    92600
    2025-02-18    92400
    2025-02-17    92100
    dtype: int64
    

    Series는 파이썬의 딕셔너리와 유사한 구조를 가지며, 인덱스를 활용한 데이터 조작이 가능합니다.


    2️⃣ DataFrame (2차원 데이터)

    DataFrame은 행렬(2차원) 형태의 데이터 구조로, 딕셔너리를 기반으로 쉽게 만들 수 있습니다.

    # 딕셔너리를 이용한 DataFrame 생성
    data = {'col1': [1, 2, 3], 'col2': [10, 20, 30], 'col3': [100, 200, 300]}
    df = pd.DataFrame(data)
    
    print(df)
    
       col1  col2  col3
    0     1    10   100
    1     2    20   200
    2     3    30   300
    

    특정 컬럼 선택

    print(df['col1'])  # Series 형태로 출력
    print(df[['col1', 'col2']])  # DataFrame 형태로 출력
    

    🔹 데이터 조회 및 조작

    1️⃣ 데이터 확인

    df.head()  # 상위 5개 행 출력
    df.tail()  # 하위 5개 행 출력
    df.shape   # 데이터 크기(행, 열) 확인
    df.info()  # 컬럼 정보 확인
    df.describe()  # 기초 통계 정보 확인
    

    2️⃣ 정렬 및 필터링

    df.sort_values(by='col2', ascending=False)  # 특정 컬럼 기준 정렬
    df[df['col1'] > 1]  # 특정 조건을 만족하는 데이터 필터링
    

    3️⃣ 데이터 추가 및 삭제

    df['new_col'] = df['col1'] * 2  # 새로운 컬럼 추가
    df.drop(columns=['new_col'], inplace=True)  # 특정 컬럼 삭제
    

    🔹 Pandas의 고급 기능

    1️⃣ 여러 DataFrame 연결 (concat)

    df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
    df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})
    
    result = pd.concat([df1, df2])
    print(result)
    
        A   B
    0  A0  B0
    1  A1  B1
    0  A2  B2
    1  A3  B3
    

    2️⃣ 데이터 병합 (merge)

    df1 = pd.DataFrame({'key': ['K0', 'K1'], 'A': ['A0', 'A1']})
    df2 = pd.DataFrame({'key': ['K0', 'K2'], 'B': ['B0', 'B2']})
    
    merged = pd.merge(df1, df2, on='key', how='inner')
    print(merged)
    
      key   A   B
    0  K0  A0  B0
    

    🔹 외부 데이터 불러오기

    1️⃣ CSV 파일 읽기

    df = pd.read_csv('data.csv', encoding='utf-8')
    print(df.head())
    

    2️⃣ 데이터 저장

    df.to_csv('output.csv', encoding='utf-8', index=False)
    

    🔹 데이터 시각화

    Pandas는 Matplotlib과 함께 사용하여 데이터를 시각적으로 표현할 수도 있습니다.

    import matplotlib.pyplot as plt  
    
    df['col1'].plot(kind='bar')  
    plt.show()
    

    ✅ 마무리

    Pandas는 데이터 분석에서 꼭 필요한 라이브러리로, 다양한 기능을 제공합니다. 이번 글에서는 기초적인 개념과 기본적인 사용법을 정리해보았습니다. 앞으로 더 깊이 있는 데이터 분석을 위해 데이터 변형, 병합, 시각화 등의 기능도 익히는 것이 중요합니다.

Designed by Tistory.