일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 청청구역
- 갈자신이없다
- 너무오래됐다
- 보라카이
- 색상변경
- 가고싶은데
- 방향변경
- 애니메이션
- 오류
- 파이썬
- 유니코드 제거
- 빅데이터분석기사후기
- 사각형변형
- 크롤링
- BeautifulSoup
- 언제또가보지
- selenium
- 빅데이터분석기사필기
- 마우스클릭
- 데이터전처리
- 멜버른
- 예쁜곳
- 호주
- OpenGL
- 정말
- 빅데이터분석기사
- 필기후기
Archives
- Today
- Total
wisdiom 아니고 wisdom
3. 데이터프레임 응용(6) 본문
6️⃣ MultiIndex, 멀티 인덱스
판다스는 행 인덱스를 여러 레벨로 구현할 수 있도록 멀티 인덱스 클래스를 지원한다.
📍 pandas.DataFrame.xs(key, axis=0, level=None, drop_level=True)
- key : label or tuple of label
- axis 0 or 'index', 1 or 'columns'
- level : key가 포함된 위치 또는 label
# sex 값이 male인 행 선택
avg.xs('male', level='sex')

7️⃣ Pivot, 피벗
판다스 pivot_table() 함수는 엑셀에서 사용하는 피벗테이블과 비슷한 기능을 처리한다.
📍 pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All', observed=False)
피벗테이블을 구성하는 4가지 요소(행 인덱스, 열 인덱스, 데이터 값, 데이터 집계 함수)에 적용할 데이터프레임의 열을 각각 지정하여 함수의 인자로 전달한다.

👉 집계에 사용할 열을 1개씩 지정해보기
pdf1 = pd.pivot_table(df, # 피벗할 데이터프레임
index='class', # 행 위치에 들어갈 열
columns='sex', # 열 위치에 들어갈 열
values='age', # 데이터로 사용할 열
aggfunc='mean') # 데이터 집계 함수
pdf1

👉 집계에 사용할 열을 2개 이상 지정해보기
pdf1_2 = pd.pivot_table(df, # 피벗할 데이터프레임
index=['class', 'sex'], # 행 위치에 들어갈 열
columns='survived', # 열 위치에 들어갈 열
values=['age', 'fare'], # 데이터로 사용할 열
aggfunc='mean') # 데이터 집계 함수
pdf1_2

👉 집계 함수를 2개 이상 지정해보기
pdf2 = pd.pivot_table(df, # 피벗할 데이터프레임
index='class', # 행 위치에 들어갈 열
columns='sex', # 열 위치에 들어갈 열
values='age', # 데이터로 사용할 열
aggfunc=['mean', 'sum']) # 데이터 집계 함수
pdf2

👉 집계에 사용할 열과 집계함수를 2개 이상 지정해보기
pdf2_2 = pd.pivot_table(df, # 피벗할 데이터프레임
index=['class', 'sex'], # 행 위치에 들어갈 열
columns='survived', # 열 위치에 들어갈 열
values=['age', 'fare'], # 데이터로 사용할 열
aggfunc=['mean', 'sum']) # 데이터 집계 함수
pdf2_2

🤜 피벗테이블 '행'을 선택해보자 🔥
pdf2_2.xs('First')

pdf2_2.xs( ('First', 'female') )

# 행 인덱스 레벨을 직접 지정
pdf2_2.xs('male', level='sex')

# 아래 세 코드는 모두 같은 결과를 보여준다.
pdf2_2.xs( ('Second', 'male'), level=[0, 1])
pdf2_2.xs( ('Second', 'male'), level=['class', 'sex'])
pdf2_2.xs( ('Second', 'male'), level=[0, 'sex'])

🤜 피벗테이블 '열'을 선택해보자 🔥
pdf2_2.xs('mean', axis=1)

pdf2_2.xs( ('mean', 'age'), axis=1 )

pdf2_2.xs(1, level='survived', axis=1)

pdf2_2.xs( ('sum', 'fare', 0), level=[0, 1, 2], axis=1 )

반응형
'👩💻 > pandas' 카테고리의 다른 글
4. 머신러닝 데이터 분석(1) (0) | 2021.02.05 |
---|---|
4. 머신러닝 데이터 분석(0) (0) | 2021.02.04 |
3. 데이터프레임 응용(5) (0) | 2021.02.01 |
3. 데이터프레임 응용(4) (0) | 2021.01.31 |
3. 데이터프레임 응용(0) (0) | 2021.01.31 |