데이터프레임 그룹 생성
- pandas의 groupby() 연산자를 사용하여 집단, 그룹별로 데이터를 집계 및 요약 할 수 있음
- dataframe을 지정한 그룹으로 나누고, 각 그룹별로 집계함수를 적용하고, 그룹별 집계 결과를 하나로 합치는 과정을 거침
abalone_src = base_src + '/abalone.data'
데이터 읽어오기
- header : none인 경우 헤더를 가져오지 않겠다는 의미
- sep : 어떤 구분자를 통해 데이터를 구분할 것인지
- names : 컬럼명
abalone_df = pd.read_csv(abalone_src, header=None, sep=',',names=['sex','length','diameter','height',
'whole_weight','shucked_weight','viscera_weight',
'shell_weight','rings'])
abalone_df
데이터 shape 확인
- row : 4177, column : 9
- 딥러닝(CNN) ⇒ 이미지 (데이터수, 가로, 세로, 색)
- 딥러닝(RNN) ⇒ 텍스트, 시게열 (데이터수, 시간, 세로)
- 데이터 행과 열이 얼마나 있는지 확인하기 위해 사용
# 데이터 shape를 확인
abalone_df.shape
데이터 결측값 확인
- isnull()만 있는 경우 불린 형태로 가져오기 때문에 sum() 같이 사용
- sum 한 번 사용 시
abalone_df.isnull().sum()
- sum 두 번 사용 시
abalone_df.isnull().sum()
결측치를 특정 값으로 채우기
- 0으로 채운 예제
# 결측치를 특정 값으로 채우기
zero_abalone_df = nan_abalone_df.fillna(0)
zero_abalone_df
- 평균 값으로 채운 예제
# 결측치를 결측치가 속한 컬럼의 평균값으로 대체하기
nan_abalone_df.mean()
nan_abalone_df.fillna(nan_abalone_df.mean())
기술 통계 확인
# 기술통계 확인 => 연속형 변수만 확인 가능 => numerical 변수만 확인 가능
abalone_df.describe()
집계
# 전복(abalone) 성별에 따라 groupby함수를 통해 집계하기
# DataFrame[집계 변수].groupby(DataFrame[집계 대상])
grouped = abalone_df['whole_weight'].groupby(abalone_df['sex'])
# 합계
grouped.sum()
grouped.mean()
# 개수
grouped.size()
성별에 따른 전체 변수에 대한 집계
# 그룹변수가 하나가 아닌, 전체 연속형 변수에 대한 집계
abalone_df.groupby(abalone_df['sex']).mean()
# 다음과 같이 간단하게 표현
abalone_df.groupby('sex').mean()
새로운 조건에 맞는 변수 추가
# 새로운 조건에 맞는 변수 추가
abalone_df['length_bool'] = np.where(abalone_df['length']>abalone_df['length'].median(),
'length_long', # True일 경우
'length_short') # False일 경우
그룹 변수 2개 이상 선택하여 총계 처리
# 그룹변수를 2개 이상 선택해서 총계 처리?
abalone_df.groupby(['sex', 'length_bool']).mean()
- 간결 표현
# 간결하게 표현 가능
abalone_df.groupby(['sex', 'length_bool'])['whole_weight'].mean()
'Programming Language > Python' 카테고리의 다른 글
[Python] Matplotlib과 Seaborn라이브러리를 활용한 데이터 시각화 (0) | 2024.06.13 |
---|---|
[Python] apply 함수 (0) | 2024.06.13 |
[Python] DataFrame (0) | 2024.06.13 |
[Python] iloc와 loc (0) | 2024.06.13 |
[Python] Pandase(판다스) (0) | 2024.06.13 |