241007 TIL Pandas pivot_table(), map()

윤수용·2024년 10월 7일
0

TIL

목록 보기
26/89

pivot_table()

1. 기본 형식

DataFrame.pivot_table(index, columns, values, aggfunc)
  • index: 행 인덱스로 사용할 열을 지정
  • columns: 열로 사용할 열을 지정
  • values: 셀의 값으로 사용할 열을 지정
  • aggfunc: 집계 함수로, 기본 값은 mean이며 sum, min, max, count 등 다양한 함수도 사용 가능

2. 오늘 배운 것

  • 기본적으로 모든 인자가 선택적이라서 df.pivot_table()도 가능
    - 개인 필수 과제 3번에서 각 인자에 어떤 값을 넣어줘야 하는지 몰라서 한참 고민했음

2. map()

1. 기본 형식

map(function, iterable)
  • function: 반복 가능한 객체의 각 요소에 적용할 함수
  • iterable: 반복 가능한 객체. map()은 이 객체의 각 요소에 함수를 적용
  • 결과를 맵 객체(map object)로 반환하며, 이 객체를 list, tuple 등으로 변환하여 사용 가능
  • 여러 개의 반복 가능한 객체에 동시에 함수를 적용할 수 있음

2. 적용 사례

police_office = {
    '서대문서': '서대문구', '수서서': '강남구', '강서서': '강서구', '서초서': '서초구',
'서부서': '은평구', '중부서': '중구', '종로서': '종로구', '남대문서': '중구',
'혜화서': '종로구', '용산서': '용산구', '성북서': '성북구', '동대문서': '동대문구',
'마포서': '마포구', '영등포서': '영등포구', '성동서': '성동구', '동작서': '동작구',
'광진서': '광진구', '강북서': '강북구', '금천서': '금천구', '중랑서': '중랑구',
'강남서': '강남구', '관악서': '관악구', '강동서': '강동구', '종암서': '성북구', 
'구로서': '구로구', '양천서': '양천구', '송파서': '송파구', '노원서': '노원구', 
'방배서': '서초구', '은평서': '은평구', '도봉서': '도봉구'
}

print(df['관서명'])
'''
0        계
1      중부서
2      종로서
⁝
30     도봉서
31     수서서
'''

df['구별'] = df['관서명'].map(police_office).fillna('구 없음')
  1. df['관서명'].map(police_office)
    • df['관서명']: DataFrame에서 '관서명' 열을 선택하여 Series 형태로 가져옴
    • .map(police_office)
      - map은 '관서명' 시리즈의 각 경찰서 이름에 대해 police_office dictionary 에서 해당하는 값을 찾아 매칭
      - '중부서'의 경우, police_office['중부서']의 값인 '중구'를 반환
      - dictionary에 없는 경찰서 이름이 등장하면 NaN(결측값)을 반환
  2. .fillna('구 없음')
    • NaN 값을 '구 없음'으로 채워주는 역할
    • 위 예시에선 0번째 에 해당하는 값이 NaN으로 반환됨
profile
잘 먹고 잘 살자

0개의 댓글