본문 바로가기
PYTHON/Pandas 판다스

[PYTHON] 데이터프레임 집계

by G허니 2024. 3. 10.

데이터를 상세히 살펴보지 않고도 집계된 데이터를 통해 통계적인 통찰을 얻는 것은 데이터 분석에서 중요한 부분입니다. 판다스에서는 sum(), mean(), max(), min(), count() 등의 메서드를 사용하여 데이터프레임을 간편하게 집계할 수 있습니다.

 

이때, 데이터를 분석하고 이해하는 과정에서 연속값과 범주값은 중요한 역할을 합니다. 연속값은 숫자로 표현되며 연속된 범위를 가지는 데이터를 나타냅니다. 반면 범주값은 일정한 카테고리 또는 그룹으로 나뉘어지는 값들을 의미합니다.

 

집계 하기

 

# total_bill 열의 합계 계산
total_bill_sum = df['total_bill'].sum()
print("Total Bill Sum:", total_bill_sum)

'total_bill' 열의 모든 값들을 더하여 그 합계를 계산합니다. 이를 통해 해당 열의 전체적인 금액 합을 쉽게 확인할 수 있습니다.

 

# total_bill 및 tip 열의 합계 계산
total_tip_sum = df[['total_bill', 'tip']].sum()
print("Total Bill and Tip Sum:")
print(total_tip_sum)

여기서는 'total_bill'과 'tip' 열의 합계를 함께 계산합니다. 결과는 각 열에 대한 합계가 포함된 시리즈로 출력됩니다.

 

groupby 메소드
# day별 tip 합계 계산 및 시리즈 생성
tip_sum_series = df.groupby('day')['tip'].sum()
print(tip_sum_series)

이 코드에서는 'day' 열을 기준으로 'tip' 열의 합계를 계산하고, 결과를 시리즈로 출력합니다.

 

# day별 tip 합계 계산 및 데이터프레임 생성
tip_sum_dataframe = df.groupby('day', as_index=False)[['tip']].sum()
print(tip_sum_dataframe)

위 코드에서는 'day' 열을 기준으로 'tip' 열의 합계를 계산하고, 결과를 데이터프레임으로 출력합니다. as_index=False를 설정하여 새로운 인덱스를 생성하고 기존의 행 번호를 인덱스로 사용하지 않습니다.

 

# day별 tip 최댓값 계산 (숫자 열만 집계)
tip_max_by_day = df.groupby(by='day', as_index=False)['tip'].max(numeric_only=True)
print(tip_max_by_day)

마지막으로는 'day' 열을 기준으로 'tip' 열의 최댓값을 계산하고, 결과를 데이터프레임으로 출력합니다. numeric_only=True를 설정하여 숫자 열만을 집계합니다.

이렇게 groupby()를 활용하면 데이터프레임에서 특정 범주값에 따른 연속값의 다양한 집계를 쉽게 수행할 수 있습니다.