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의 하이퍼 파라미터를 수정해주면 된다.
'데이터 > 데이터 분석' 카테고리의 다른 글
[Python] 로또는 운일까 ? (로또 데이터 분석) - 1편. 로또 정보 수집하기 (0) | 2024.07.05 |
---|---|
파이썬 판다스 (concat / merge) (0) | 2024.03.26 |
T-test 정리 (0) | 2023.10.28 |
데이터 분석 이상치 처리 (Z-score,IQR) (1) | 2023.10.21 |
파이썬 판다스 (시리즈/데이터프레임/인덱싱/멀티인덱싱) (0) | 2023.08.22 |