Python

pandas 라이브러리

learning-log22 2025. 4. 26. 19:19
반응형

1. Pandas란?

  • Python Data Analysis Library의 약자.
  • 1~2차원 표 형태(테이블) 데이터를 다루는 데 최적화된 파이썬 라이브러리.
  • index(행 이름), columns(열 이름)  라벨(Label) 기반 데이터 관리가 가능.

2. Pandas 기본

(1) Series (1차원)

  • 1차원 데이터 구조: 데이터 + 인덱스(Label) + 이름(Name)
  • pd.Series(리스트, index=리스트, name='이름')

예시:

import pandas as pd
s = pd.Series([58400, 59200, 59000], index=["2020-09-09", "2020-09-10", "2020-09-11"], name="A005930")
  • .loc[] : 인덱스 이름 기반 접근
  • .iloc[]: 순서(배열 번호) 기반 접근

(2) DataFrame (2차원)

  • 여러 개의 Series를 가로 방향으로 합친 것 = 2차원 표.
  • 행(row) × 열(column) 구조.
  • pd.DataFrame(데이터, index=인덱스리스트, columns=열이름리스트)

예시:

data = [[58400, 59200], [59000, 60400]]
df = pd.DataFrame(data, index=["2020-09-09", "2020-09-10"], columns=["A005930", "A005940"])
  • 각각의 열은 Series.

3. 접근 방법 (Access)

방법설명

.loc[] 인덱스 이름 기반 접근 (slice 끝 포함)
.iloc[] 순서 기반 접근 (slice 끝 미포함)

 

  • [행, 열] 형태로 접근.
  • 부분 추출 시 1차원이면 Series, 2차원이면 DataFrame 반환.

4. 연산 (Operation)

(1) Broadcasting

  • Series나 DataFrame에 스칼라(숫자)를 적용하면 전체 원소에 확장 적용.

(2) Aggregation (집계)

  • .sum(), .mean(), .max(), .min(), .count() 등.
  • 축(axis) 지정 가능:
    • axis=0 : 세로 방향(열끼리 계산)
    • axis=1 : 가로 방향(행끼리 계산)

(3) 누적 연산

  • .cummax(), .cummin(), .cumsum(), .cumprod()

5. 정렬 (Sort & Rank)

  • .sort_values(기준, axis=, ascending=)
    • 값 기준 오름/내림차순 정렬.
  • .rank(axis=, ascending=)
    • 순위 매기기 (같은 값은 평균 처리).

6. 생성 및 수정

(1) 생성

  • pd.Series()
  • pd.DataFrame()

(2) 열 추가

df["새열"] = 데이터

(3) 행 추가

  • df.loc[새로운 인덱스] = [값1, 값2, ...]

(4) 값 수정

df.loc["행", "열"] = 새로운값

 

7. 고급 기능

(1) 병합 (Concat)

  • pd.concat([df1, df2], axis=0 또는 axis=1)

(2) 그룹 집계 (Groupby)

  • df.groupby("기준컬럼").agg(연산함수)
  • sum, mean, count, max, 등 다양한 집계.

(3) 조건 필터링 (Query)

  • df.query("조건식")
  • 조건문에 문자열 필요 시 큰따옴표 사용.

예시:

df.query('Sector == "운송"')
df.query('Price > 10000 and Sector == "IT"')

(4) 인덱스 설정 및 해제

  • .set_index(컬럼명) : 특정 컬럼을 인덱스로
  • .reset_index() : 인덱스를 다시 기본 숫자로.

(5) 결측치 처리

  • .fillna(값 또는 method='ffill'/'bfill')
  • .dropna(axis=, how=)

(6) bool 필터링

  • 조건 결과가 True/False인 배열을 사용해 직접 필터링:
df[df["Price"] > 10000]

 


 

요약 포인트

키워드설명

Series 1차원 데이터: 값 + 인덱스 + 이름
DataFrame 2차원 데이터 테이블 (Series의 집합)
.loc[], .iloc[] 라벨 또는 순서 기반 접근
.sum(), .mean() 집계 함수 (축 방향 지정 가능)
.sort_values() 값 기준 정렬
.rank() 순위 매기기
.concat() 여러 데이터 병합
.groupby() 기준 별 그룹화 후 집계
.query() 조건 기반 필터링
.set_index(), .reset_index() 인덱스 설정/해제
.fillna(), .dropna() 결측치 처리

 

728x90
LIST

'Python' 카테고리의 다른 글

matplotlib 실습  (0) 2025.05.01
감성분석 이론  (0) 2025.05.01
크롤링  (2) 2025.04.26
matplotlib 라이브러리  (0) 2025.04.26
Numpy 라이브러리  (0) 2025.04.26