본문 바로가기
프로그래밍/AI

Pandas 기본 문법

by slowin 2024. 11. 19.

작성일: 24.11.19(화)

강사님: 조대연

Pandas 기본 문법

  • Python Data Analysis Library의 줄임말
  • 데이터 조작과 분석을 위한 파이썬 라이브러리
  • 엑셀의 기능을 프로그래밍으로 구현한 것이라고 이해하면 쉬움

DataFrame

  • 2차원 테이블 구조
  • 엑셀 시트와 유사한 형태
  • Series들의 집합이라고 볼 수 있음
df = pd.DataFrame({
    '이름': ['김씨', '박', '이씨'],
    '나이': [25, 28, 32],
    '직업': ['학생', '회사원', '교사']
})

Series 개념

  • Pandas의 기본 1차원 데이터 구조
  • NumPy array와 유사하지만, 인덱스 레이블을 가짐
  • 동일한 데이터 타입의 값들을 담는 1차원 배열

리스트 생성

import pandas as pd

# 기본 생성
s1 = pd.Series([1, 2, 3, 4, 5])

# 인덱스 지정
s2 = pd.Series([1, 2, 3, 4, 5], 
               index=['a', 'b', 'c', 'd', 'e'])

# 딕셔너리의 key가 인덱스가 됨
dict_data = {'a': 1, 'b': 2, 'c': 3}
s3 = pd.Series(dict_data)

# 스칼라 값으로 생성
# 동일한 값으로 Series 생성
s4 = pd.Series(5, index=['a', 'b', 'c'])
# 결과: a    5
#       b    5
#       c    5

Series 속성

s = pd.Series([1, 2, 3, 4, 5], 
              index=['a', 'b', 'c', 'd', 'e'])

# 값 배열
print(s.values)  # [1 2 3 4 5]

# 인덱스
print(s.index)   # ['a', 'b', 'c', 'd', 'e']

# 크기
print(s.size)    # 5

# 차원
print(s.ndim)    # 1

# 데이터 타입
print(s.dtype)   # int64

Series 연산

# 산술 연산
# 사칙연산
print(s + 2)     # 모든 값에 2를 더함
print(s * 2)     # 모든 값에 2를 곱함

# Series 간 연산
s2 = pd.Series([1, 2, 3, 4, 5])
print(s + s2)    # 같은 위치의 값끼리 더함


# 통계연산
print(s.mean())  # 평균
print(s.sum())   # 합계
print(s.std())   # 표준편차
print(s.min())   # 최소값
print(s.max())   # 최대값

# 결측치 처리
# 결측치 확인
print(s.isnull())

# 결측치 제거
print(s.dropna())

# 결측치 채우기
print(s.fillna(0))

시계열 데이터 분석

# 날짜 인덱스를 가진 Series 생성
dates = pd.date_range('20240101', periods=5)
ts = pd.Series([1, 2, 3, 4, 5], index=dates)

범주형 데이터 처리

# 범주형 데이터 생성
grades = pd.Series(['A', 'B', 'A', 'C', 'B'])
print(grades.value_counts())  # 각 값의 빈도 계산

데이터변환

# 데이터 타입 변환
s = s.astype('float64')

# 문자열 메소드 사용
names = pd.Series(['john', 'JANE', 'Bob'])
print(names.str.upper())

'프로그래밍 > AI' 카테고리의 다른 글

아나콘다란?  (1) 2024.11.22
서울시 범죄현황 통계자료 분석 및 시각화  (0) 2024.11.19
머신러닝을 위한 데이터 - 종류, 수집, 활용  (2) 2024.11.19
python 기초 문법  (3) 2024.11.18
마인드셋  (0) 2024.11.16