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