상세 컨텐츠

본문 제목

파이썬 기초 5. Pandas

기초/파이썬

by 2^7 2024. 9. 9. 20:26

본문

pandas

데이터 분석과 조작을 위한 라이브러리 중 가장 많이 사용하는 도구

대용량 데이터를 효율적으로 처리하고, 데이터 전처리 시 매우 유용한 기능들을 제공함

Pandas는 행과 열로 이루어진 "데이터프레임(DataFrame)"을 중심으로 데이터 처리를 하며, SQL, 엑셀 등의 데이터와 유사한 형식으로 데이터를 쉽게 다룰 수 있도록 도와줌

1. pandas 주요 기능

1-1. 다양한 파일 형식 지원

Pandas는 CSV, 엑셀, SQL, JSON 등 다양한 형식의 파일을 쉽게 읽고 쓸 수 있어 이를 통해 여러 소스에서 데이터를 가져와 쉽게 분석할 수 있음

import pandas as pd

# CSV 파일 읽기
df = pd.read_csv('data.csv')

# 데이터프레임을 엑셀 파일로 저장하기
df.to_excel('output.xlsx', index=False)

 

1-2. 데이터프레임 생성과 조회

데이터프레임은 Pandas의 핵심 구조로, 행과 열로 구성된 데이터셋을 직관적으로 확인이 가능하게 하며 Python의 리스트나 딕셔너리와 같은 자료구조로 쉽게 데이터프레임을 만들 수 있음

data = {'이름': ['김철수', '이영희', '박민수'],
        '나이': [25, 30, 22],
        '도시': ['서울', '부산', '인천']}

df = pd.DataFrame(data)

# 데이터프레임의 첫 5개 행 조회
print(df.head())

1-3. 데이터 필터링 및 선택

데이터를 필터링하거나, 특정 열을 선택하는 작업이 가능

# 나이가 25 이상인 데이터 필터링
filtered_df = df[df['나이'] >= 25]

# 특정 열 선택
city_column = df['도시']

1-4. 데이터 정렬 및 집계

데이터를 특정 기준에 따라 정렬하거나 집계하는 작업이 가능

# 나이 기준으로 데이터프레임 정렬
sorted_df = df.sort_values(by='나이', ascending=True)

# 도시별로 나이 평균 계산
mean_age_by_city = df.groupby('도시')['나이'].mean()

1-5. 결측값 처리

데이터에서 "결측값(NaN)"을 특정 값으로 대체하거나, 결측값이 포함된 행을 제거할 수 있음

# 결측값을 0으로 대체
df_filled = df.fillna(0)

# 결측값이 포함된 행 제거
df_dropped = df.dropna()

1-6. 데이터 결합과 병합

여러 개의 데이터프레임을 하나로 결합이 가능

df1 = pd.DataFrame({'ID': [1, 2], '이름': ['김철수', '이영희']})
df2 = pd.DataFrame({'ID': [1, 2], '점수': [90, 85]})

# 두 데이터프레임을 ID를 기준으로 병합
merged_df = pd.merge(df1, df2, on='ID')

2. pandas 심화

2-1. Groupby와 Pivot Table

  • Groupby : 데이터를 그룹화하고 그룹별로 집계를 할 수 있는 매우 강력한 기능
  • Pivot Table : 엑셀의 피벗 테이블과 같이 데이터를 재구성하는 데 유용
# Groupby로 이름별로 나이 평균 계산
grouped_data = df.groupby('이름')['나이'].mean()

# 피벗 테이블로 특정 기준에 따른 데이터 요약
pivot = df.pivot_table(index='이름', values='나이', aggfunc='mean')

2-2. 시간 데이터 처리

Pandas는 날짜 및 시간 데이터도 처리가 가능

# 문자열로 된 날짜를 날짜 형식으로 변환
df['날짜'] = pd.to_datetime(df['날짜'])

# 날짜를 인덱스로 설정
df.set_index('날짜', inplace=True)

 

728x90

관련글 더보기