ℹ️ 데이터/데이터 분석
파이썬 판다스 (groupby / pivot_table)
Jerry_K
2024. 3. 18. 15:24
groupby
from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
iris = load_iris()
df = pd.DataFrame(iris.data,columns=iris.feature_names)
df["target"] = iris.target
iris 데이터를 groupby 연습할 데이터로 써보자.
df.groupby(by="petal width (cm)").count().head()
사용 가능한 집계 함수는 count / size / sum / mean / std / var / min / max 의 값들이 있다.
df.groupby(["target","petal width (cm)"]).mean().head()
복수개의 컬럼을 기준으로 하면, 다중 인덱싱도 가능하다.
df.groupby(["target","petal width (cm)"]).mean().head()
aggregate를 활용하면 데이터프레임의 값을 다양하게 집계 할 수 있다.
pivot_table
피벗 테이블로 행 데이터를 열 데이터로 회전할 수 있다.
피벗 테이블은 기본적으로 index, columns, values를 지정하여 구성할 수 있다.
주로 특정 컬럼들을 따로 비교하고 싶을때 사용한다.
data = np.array([
['2024-03-01', 'Apple', 10, 2],
['2024-03-01', 'Orange', 15, 1.5],
['2024-03-02', 'Apple', 8, 2.2],
['2024-03-02', 'Orange', 12, 1.6],
['2024-03-03', 'Apple', 12, 2.1],
['2024-03-03', 'Orange', 18, 1.7]
])
data = pd.DataFrame(data,columns=["day","product","sale_mnt","price"])
피벗 테이블 연습하기 좋은 새로운 데이터 프레임을 만들었다.
data.pivot_table(index="day",columns="product",values="price")
날마다 제품별 가격이 궁금했기 때문에 위와 같은 코드를 작성하였다.
일반적으로 aggfunc의 기본값은 평균값이다.
data.pivot_table(index="day",columns="product",values="price",aggfunc=np.sum)
평균값이 아닌 다른 집계함수를 쓰고 싶으면 aggfunc의 하이퍼 파라미터를 수정해주면 된다.