[Python] DataFrame 그룹

2024. 6. 13. 09:01·Programming Language/Python

데이터프레임 그룹 생성

  • 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
'Programming Language/Python' 카테고리의 다른 글
  • [Python] Matplotlib과 Seaborn라이브러리를 활용한 데이터 시각화
  • [Python] apply 함수
  • [Python] DataFrame
  • [Python] iloc와 loc
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    springboot
    스프링
    JPA
    DB
    자바
    Linux
    baekjoon
    데이터
    리눅스마스터 1급
    CS지식
    spring
    프로그래머스
    Flutter
    리눅스마스터
    programmers
    Java
    스프링부트
    pcce 기출문제
    postgresql
    스프링 부트 쇼핑몰 프로젝트 with JPA
    플러터
    데이터베이스
    백준
    리눅스
    Spring Security
    CS
    python
    Oracle
    시큐리티
    backjoon
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[Python] DataFrame 그룹
상단으로

티스토리툴바