Mastering Pandas for Data Wrangling
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Pandas for Data Wrangling

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

데이터 분석

대상자

  • 데이터 분석, 데이터 과학, 비즈니스 분석가 등 데이터를 다루는 전문가
  • 초보자부터 중급자까지 Pandas 기초부터 고급 기능까지 이해 가능
  • 난이도: 중급 수준 (기본 파이썬 지식 필요)

핵심 요약

  • DataFrameSeriesPandas의 핵심 객체로, DataFrame은 2D 테이블, Series는 1D 라벨 배열
  • 데이터 로딩: read_csv, read_excel 등을 통해 파일에서 데이터를 쉽게 불러올 수 있음
  • 데이터 조작: loc, iloc로 라벨/인덱스 기반 선택, groupby로 집계, fillna으로 누락값 처리
  • 성능 최적화: 벡터화 연산apply보다 빠름, agg으로 복수 집계 함수 적용 가능

섹션별 세부 요약

1. DataFrame과 Series 소개

  • DataFrame은 스프레드시트 또는 SQL 테이블과 유사, Series는 단일 열로 구성됨
  • DataFrame 생성 예시:

```python

sales = pd.DataFrame({'Units Sold': [25, 42], 'Returns': [3, 1]})

```

  • Series 생성 예시:

```python

pd.Series(['North', 'South', 'West'], name='Direction')

```

2. 데이터 로딩

  • read_csv 사용 시 sep, index_col, dtype 등 옵션을 통해 설정 가능
  • 예시:

```python

pop = pd.read_csv('data/world_population.csv')

print(pop.shape) # (235, 5)

```

3. 데이터 선택 및 필터링

  • 브라켓 접근: employees['Salary']로 열 선택
  • iloc: 인덱스 기반 선택 (예: employees.iloc[2, 1])
  • loc: 라벨 기반 선택 (예: employees.loc['Ben', ['Department', 'Salary']])
  • 부울 마스크:

```python

high_paid = employees[employees['Salary'] >= 70_000]

```

4. 데이터 변환 및 집계

  • 벡터화 연산: employees['Salary_2026'] = employees['Salary'] * 1.05
  • groupby:

```python

employees.groupby('Department')['Salary'].mean()

```

  • agg:

```python

employees.groupby('Department')['Salary'].agg(['count', 'min', 'median', 'max'])

```

5. 누락값 및 데이터 타입 관리

  • 누락값 처리: isnull(), notnull(), fillna() 사용
  • 데이터 타입 변경: astype()으로 int64 등으로 변환 가능
  • 예시:

```python

employees['Salary'] = employees['Salary'].astype('int64')

employees['Years'] = employees['Years'].fillna(0)

```

6. 데이터셋 결합

  • concat: 동일한 열/인덱스를 가진 DataFrame 병합
  • join: 인덱스 기반 왼쪽/오른쪽 조인
  • merge: SQL 스타일의 키 기반 합병
  • 예시:

```python

all_sales = pd.concat([q1, q2], ignore_index=True)

```

결론

  • 벡터화 연산을 사용해 성능 최적화하고, loc/iloc의 차이를 명확히 이해해야 함
  • groupby + agg을 활용해 복잡한 집계 작업 수행, merge보다 concat의 사용 시 주의 필요
  • 누락값 처리데이터 타입 관리는 실무에서 필수 단계로, fillna()astype()을 적극 활용하세요.