끄적끄적
2025.07.02 Pandas 실무 기초 세션 1 본문
| 튜터 | 김연준 튜터님 |
| 학습 목표 | 1. Pandas의 기본 데이터 구조 Series, DataFrame을 명확히 이해한다. 2. 결측치 개념인 NaN과 Null의 차이를 파악하고 적절히 처리한다. 3. 비교 연산자/논리 연산자/조건 필터링을 통해 행(row)/열(column) 서브셋 추출을 연습한다. 4. drop_duplicates(), isin(), isnull(), sample(), loc/iloc, nlargest() 등 실무에서 반복되는 전처리 코드를 직접 다뤄본다. |
더보기
더보기
목차
- Pandas 기본 구조
- Series
- DataFrame
- NaN vs Null
- 조건 필터링과 서브셋 추출
- 비교 연산자, 논리 연산자, any, all
- isin(), isnull()
- 중복 제거와 샘플링
- drop_duplicates()
- sample()
- nlargest(), nsmallest()
- loc / iloc 비교
1️⃣ Pandas 기본 구조
📌 Series
- 정의: 인덱스를 가진 1차원 배열
- 한 열 또는 한 행으로 다룰 수 있다.
import pandas as pd
# Series 예시
s = pd.Series([1, 2, 3])
print(s)
📌 DataFrame
- 정의: 여러 Series가 열 단위로 모인 2차원 표
- SQL 테이블과 동일.
df = pd.DataFrame(
{"a": [4, 5, 6],
"b": [7, 8, 9],
"c": [10, 11, 12]},
index=[1, 2, 3]
)
print(df)
📌 NaN vs Null
| 개념 | 정의 | 실습 |
| NaN | Not a Number | 수치 연산에서 결측값 |
| Null | 값이 없음 | DB에서 Null, Pandas에선 NaN |
import numpy as np
df = pd.DataFrame({'x': [1, np.nan, 3]})
print(df)
print(pd.isnull(df))# 결측값 여부 True/False
2️⃣ 조건 필터링과 서브셋 추출
📌 비교 연산자 / 논리 연산자
- ==, !=, <, >, <=, >=
- &(AND), |(OR), ~(NOT)
- any(), all() 도 함께 실습
# DataFrame 예시
df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
# 조건 연산자
df[df['a'] > 1]
# 논리연산자 AND
df[(df['a'] > 1) & (df['b'] < 6)]
# any(), all() 활용
(df > 1).any(axis=0)# 열 단위: 하나라도 True면 True
(df > 1).all(axis=1)# 행 단위: 모두 True면 True
📌 isin()
df['a'].isin([5])
# 'a' 컬럼에서 값이 5인 항목 여부 True/False
📌 isnull()
pd.isnull(df)
# DataFrame 전체에서 결측값 여부
3️⃣ 중복 제거와 샘플링
📌 drop_duplicates()
df = df.drop_duplicates(keep='last')
# 중복된 행이 있으면 마지막 값만 남기고 제거
📌sample()
df.sample(frac=0.3)
# 전체의 30%를 무작위 추출
📌 nlargest(), nsmallest()
df = pd.DataFrame({'a': [1, 2, 3, 4, 5]})
df.nlargest(1, 'a')
# 'a' 컬럼에서 가장 큰 값 1개 선택
df.nsmallest(2, 'a')
# 'a' 컬럼에서 가장 작은 값 2개 선택
4️⃣ loc / iloc 심화 비교
📌 loc: 인덱스 라벨 기준으로 선택
- 예시: df.loc[:3, ['a']] → 인덱스 라벨 0~3행의 'a' 컬럼 선택
📌 iloc: 인덱스 정수 위치 기준으로 선택
- 예시: df.iloc[:3, [1, 3]] → 앞쪽 3행의 2번째, 4번째 열 선택
df.iloc[-2:]
# 마지막 두 행 선택'[스파르타]내일배움캠프 데이터 분석 트랙 > Session' 카테고리의 다른 글
| 2025.07.03 통계 세션 5 (1) | 2025.07.09 |
|---|---|
| 2025.07.02 데이터 크롤링 세션 1 (2) | 2025.07.09 |
| 2025.07.01 머신러닝 세션 2 (4) | 2025.07.09 |
| 2025.07.01 통계 세션 4 (3) | 2025.07.09 |
| 2025.06.30 머신러닝 세션 1 (0) | 2025.07.02 |