Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- 반복문
- matplotlib
- DataFrame
- 최솟값
- 최댓값
- string
- numpy
- len()
- count()
- nan
- elbow method
- insert()
- Dictionary
- wcss
- data
- Python
- pandas
- function
- append()
- del
- 덴드로그램
- sklearn
- 분류 결과표
- dendrogram
- Machine Learning
- DataAccess
- IN
- analizer
- hierarchical_clustering
- list
Archives
- Today
- Total
개발공부
[Python] Pandas pivot_table() 생성하기 본문
import pandas as pd
import numpy as np
pivot_table()
피봇팅한다는 것은 즉 컬럼의 값을 열로 만드는것을 말한다.
pivot_table()은 해당 컬럼의 데이터들에 중복데이터들이 있어도,
이를 하나의 인덱스로 합치고 수치 데이터들의 평균(디폴트)을 출력한다.
아래와 같은 데이터프레임으로 예를 들어보자.

Name으로 피봇팅을 해도 되는지 (즉 카테고리컬 데이터가 맞는지) 확인을 해보자.
>>> df['Name'].nunique()
12
df의 총 행은 17개인데 nunique()의 값은 12이기 때문에 Name은 카테고리컬 데이터이다.
평균값으로 피봇테이블 생성
그럼 Name을 기준으로 피봇테이블을 생성해보자.
pd.pivot_table(df, index = ['Name'])

결과는 위와 같이 나온다.
각 Name의 데이터가 여러개여도 그 값들의 평균값을 계산해서 나오게 된다.
합한 값으로 피봇테이블 생성
그러면 평균이 아니라 값들의 합을 출력하려면
aggfunc 라는 파라미터를 추가하여 np.sum 을 넣으면 된다.
pd.pivot_table(df, index= ['Name'], aggfunc= np.sum)

그러면 위와 같이 평균값이 아니라 합이 출력되게 된다.
Name 컬럼으로 묶고 'Price', 'Quantity'의 값들로만 피봇테이블을 생성할 수도 있다.
이것은 values 파라미터를 추가하여 ['Price', 'Quantity'] 를 넣어주면 된다.
pd.pivot_table(df, index=['Name'], values =['Price', 'Quantity'], aggfunc=np.sum)

'Python > Pandas' 카테고리의 다른 글
| pandas.read_csv 함수의 error_bad_lines=False 파라미터 사용법 (0) | 2022.05.12 |
|---|---|
| [Python] Pandas 에서 시간 처리 [생성(datetimeIndex() , to_datetime()), 연산, 인덱싱] (0) | 2022.05.06 |
| [Python] Pandas Dataframe 합치기 concat(), merge() (0) | 2022.05.03 |
| [Python] Pandas 데이터 정렬하기 sort_values(), sort_index() (0) | 2022.05.03 |
| [Python] Pandas Dataframe 조건을 만족하는 데이터 얻기, apply()(=함수를 이용해 얻기) (0) | 2022.05.03 |