+ 개발

Pandas로 데이터 분석하기

AI.Logger 2024. 8. 29. 00:53
  • 수업 내용 리마인드 및 아카이빙 목적의 업로드


 

1. Pandas란?

 

Pandas는 파이썬에서 데이터 분석을 위한 강력한 라이브러리입니다. R 언어의 데이터프레임에서 영감을 받아 설계되었으며, 내부적으로 Numpy를 활용해 빠르고 효율적인 데이터 처리를 가능하게 합니다. Pandas를 통해 엑셀과 비슷한 구조의 데이터를 다룰 수 있어 데이터 분석을 더욱 직관적으로 할 수 있어요.

 

2. Pandas의 주요 자료형

 

  • Series: Series는 Numpy의 1차원 배열과 비슷한데, 인덱스와 값으로 구성되어 있어요. 리스트나 딕셔너리 같은 자료형에서 쉽게 만들 수 있고, 인덱스를 통해 데이터를 자유롭게 다룰 수 있어요.
# 리스트를 사용해 Series를 만들어 보고, 데이터를 다루는 방법

import pandas as pd
x = [1, 2, 3, 4, 5]
series = pd.Series(x)
print(series)

 

  • DataFrame: DataFrame은 여러 개의 Series를 모아 만든 2차원 테이블 구조로, 엑셀의 시트와 비슷한 구조를 가지고 있어요. 행과 열로 데이터를 쉽게 선택하고 분석할 수 있답니다.
# 딕셔너리를 이용해 간단한 DataFrame을 만드는 방법

data = {
    '연도': [2015, 2016, 2017],
    '판매량': [103, 70, 130],
    '매출': [500000, 300000, 400000]
}
df = pd.DataFrame(data)
print(df)

 

3. Pandas의 핵심 기능

 

  • 인덱싱과 슬라이싱: Pandas에서는 필요한 데이터만 쏙쏙 골라낼 수 있는 인덱싱과 슬라이싱 기능을 제공합니다. 이 기능을 통해 원하는 데이터만 빠르게 선택해서 분석할 수 있어요.
# DataFrame에서 행과 열을 선택하는 다양한 방법

df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [10, 20, 30, 40]
})
print(df.iloc[1:3])  # 행 선택
print(df['A'])  # 열 선택

 

  • 데이터 결합과 병합: Pandas는 여러 개의 DataFrame을 하나로 합치거나 결합하는 다양한 방법을 제공해요. concat, merge, join 같은 기능을 사용해 데이터를 자유롭게 합칠 수 있습니다.
# 두 개의 DataFrame을 합치는 방법

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)

 

  • 결측값 처리: 데이터 분석을 할 때 결측값(NaN)을 어떻게 처리하느냐가 매우 중요해요. Pandas는 결측값을 쉽게 찾아내고, 제거하거나 다른 값으로 대체할 수 있는 다양한 방법을 제공해요.
# DataFrame에서 결측값을 특정 값으로 채우는 방법

df = pd.DataFrame({
    'A': [1, 2, None, 4],
    'B': [None, 2, 3, 4]
})
df.fillna(0, inplace=True)
print(df)

 

4. 데이터 연산과 집계 함수

 

Pandas는 기본적인 수학 연산과 통계 분석을 위한 다양한 함수를 제공해요. 이를 통해 데이터를 더 깊이 있게 분석하고, 중요한 인사이트를 얻을 수 있죠.

 

  • 기초 통계 연산: Pandas는 합계, 평균, 표준편차 같은 기초적인 통계 연산을 쉽게 처리할 수 있어요.
# DataFrame의 합계와 평균을 구하는 방법

df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8]
})
print(df.sum())  # 합계
print(df.mean())  # 평균

 

  • 그룹화와 집계(GroupBy): 데이터를 그룹별로 묶어서 분석하는 것도 Pandas의 강력한 기능 중 하나예요. 특정 기준으로 데이터를 그룹화한 후, 각 그룹별로 집계 연산을 할 수 있어요.
# 데이터를 그룹화한 후 각 그룹의 합계를 계산하는 방법

df = pd.DataFrame({
    'Category': ['A', 'A', 'B', 'B'],
    'Values': [10, 15, 10, 25]
})
grouped = df.groupby('Category').sum()
print(grouped)