반응형
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 |