Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
Archives
Today
Total
관리 메뉴

나의 기록

[Python] 데이터 집계 , Group by, Pivot table 본문

개발일지/Python

[Python] 데이터 집계 , Group by, Pivot table

리베린 2024. 1. 25. 17:09

 

1. GROUP BY 

 

스파르타 코딩 클럽

 

 

  • 카테고리 그룹별로 연산 

 

df.groupby('Category').mean()

df.groupby('Category').sum()
df.groupby('Category').count()
df.groupby('Category').max()
df.groupby('Category').min()

 

 

 

tips_data.csv 활용해서 연습

df[['sex','day','total_bill', 'tip', 'size']].groupby(['sex', 'day']).mean()

 

 

group by를 sex랑 day 기준으로 해준 것임. 

 

df[['sex','day','total_bill', 'tip', 'size']].groupby(['sex', 'day']).agg({'total_bill': 'max', 'tip':'mean', 'size': 'sum'})

 

 

 

복수의 열을 기준으로 그룹화하여 데이터프레임을 조작하는 경우, groupby() 함수에 복수의 열을 리스트로 전달하여 원하는 그룹화 기준을 지정하고, agg() 함수를 사용하여 여러 열에 대해 다양한 집계 함수를 적용할 수 있습니다.

 

 

 

2. Pivot Table 

 

df = pd.DataFrame({
    'Date': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02', '2023-01-01'],
    'Category': ['A', 'B', 'A', 'B', 'A'],
    'Value': [10, 20, 30, 40, 50]
})
df

 

pivot = df.pivot_table(index='Date', columns='Category', values='Value', aggfunc='sum')
pivot

 


df = pd.DataFrame({
    'Date': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02', '2023-01-01'],
    'Category': ['A', 'B', 'A', 'B', 'A'],
    'SubCategory': ['X', 'Y', 'X', 'Y', 'X'],
    'Value': [10, 20, 30, 40, 50]
})
df

subcategory 추가 

 

 

pivot = df.pivot_table(index='Date', columns=['Category', 'SubCategory'], values='Value', aggfunc='sum')
pivot

 


 

☑️ 데이터 정렬하기

1. sort_values() 함수:

  • 컬럼 기준으로 정렬 

샘플 데이터

 

sorted_by_score = df.sort_values('Score') # 'Score' 열을 기준으로 오름차순 정렬
sorted_by_score = df.sort_values('Score',ascending=False) # 'Score' 열을 기준으로 내림차순 정렬

 

=> Age와 Score 기준으로 각각 나눠주고 , 각각 오름차순, 내림차순 

 

sort_index() 함수: 인덱스를 기준으로 정렬

 

df.sort_index() # 인덱스를 기준으로 오름차순 정렬
df.sort_index(ascending=False) # 인덱스를 기준으로 내림차순 정렬