데이터프레임 집계
# 타이타닉 데이터 불러오기
import pandas as pd
import numpy as np
import seaborn as sns
titanic = sns.load_dataset(('titanic'))
# # survived, pclass, sex, age, embarked 컬럼만 조회할 수 있는 데이터 프레임 생성
df = titanic[['survived','pclass','sex','age','fare']]
df
=> titanic 데이터에서 survived, pclass, sex, age, fare 데이터만 조회할 수 있는 데이터프레임 생성
데이터프레임 데이터 형태별 집계 방법 | |
범주형 데이터 | 갯수, 최빈값 |
연속형 데이터 | 합, 평균, 최댓값, 최솟값 |
# 합
print('합')
print(df['fare'].sum())
print('-'*20)
# 평균
print('평균')
print(df['fare'].mean())
print('-'*20)
# 최댓값
print('최댓값')
print(df['fare'].max())
print('-'*20)
# 최솟값
print('최솟값')
print(df['fare'].min())
합
28693.9493
--------------------
평균
32.2042079685746
--------------------
최댓값
512.3292
--------------------
최솟값
0.0
=> 데이터프레임 df의 컬럼 fare에 대한 집계값(합, 평균, 최댓값, 최솟값) 출력
=> fare 데이터는 연속형 데이터임
- groupby() 사용하여 집계
1) 성별(sex)에 따른 요금(fare) 총합
# groupby()
df.groupby(by='sex', as_index=False)[['fare']].sum()
=> 성별에 따른 요금 총합
=> 여성 탑승자의 요금 총합은 13967, 남성 탑승자의 요금 총합은 14727이다.
=> by='sex' : 성별로 그룹화하겠다.
=> as_index = False : 그룹화 기준(sex)을 인덱스로 설정하지 않겠다.
=> [['fare']] : 대괄호[] 를 하나만 작성하면 시리즈 형태로 출력되기 때문에, 2개를 작성하여 데이터프레임 형태로 출력했다.
=> [['fare']].sum() : fare의 합계를 출력하겠다.
2) 성별(sex)에 따른 요금(fare), 연령(age) 평균
# groupby()
df.groupby(by='sex', as_index=False)[['fare', 'age']].mean()
=> 성별에 따른 요금과 연령의 평균
=> 여성 탑승자의 평균 요금은 44, 평균 연령은 28 // 남성 탑승자의 평균 요금은 26, 평균 연령은 31이다.
=> by='sex' : 성별로 그룹화하겠다.
=> as_index = False : 그룹화 기준(sex)을 인덱스로 설정하지 않겠다.
=> [['fare', 'age']].sum() : fare, age의 평균을 출력하겠다. (여러 열 집계 가능)
** 집계를 통해, 그래프를 그려 가시성을 좋게 할 수 있다.
# groupby()
a = df.groupby(by='sex', as_index=False)[['fare']].sum()
a.plot(kind='bar')
=> 0(female)이 1(male)보다 요금 총합이 적다는 것을 확인할 수 있다.
- value_counts() 사용하여 집계
# 남자, 여자별 데이터 수
df['sex'].value_counts()
=> 남자는 몇명, 여자는 몇명인지 확인할 수 있음
# 시각화
df['sex'].value_counts().plot(kind='bar')
=> 타이타닉에는 남자가 여자보다 더 많이 탑승했다는 것을 확인할 수 있다.
'Python 파이썬' 카테고리의 다른 글
파이썬 matplotlib(1) - 숫자형 변수 (0) | 2023.02.28 |
---|---|
파이썬 시각화 (1) | 2023.02.27 |
파이썬 데이터프레임 - pandas 기초(4-3) (0) | 2023.02.23 |
파이썬 데이터프레임 - pandas 기초(4-2) (0) | 2023.02.22 |
파이썬 데이터프레임 - pandas 기초(4-1) (0) | 2023.02.21 |