데이터분석

27. Jupyter 사용

장수우 2024. 1. 8. 21:59
학습주제
  • Jupyter - DataFrame
주요 학습 내용
  • DataFame
  • DataFrame 생성
    member = {
        'Attack': [111, 222, 333],
        'Defence': [444, 555, 666],
        'Luck': [777, 888, 999]
    }
    member_df = pd.DataFrame(member)
    member_df​
  • 열(Columns) 접근
    • 데이터가 제공되면 그것으로 columns로 설정한다.
    • 제공되지 않으면 default는 Rangeindex(0, 1, 2 ..n)으로 설정된다.
      열 접근을 하면 Series가 반환된다.

 

  • index
    • 데이터가 제공되면 그것으로 index로 설정된다.
    • 제공되지 않으면 default는 RangeIndex(0, 1, 2..n)으로 설정된다.

 

  • 권장하는 방식

  • DataFrame의 속성(Attr, attr, attributes)
    - . (dot)을 통해 접근하며 활용할 수 있는 속성을 확인해보자
    • .shape : 행렬 크기(모양)을 알 수 있다.
    • .info() : 정보를 알 수 있다.
    • .values
    • .dtypes : 데이터 타입을 알 수 있다.
    • .index
    • .columns
    • .axes : 인덱스 정보와 열 정보를 알 수 있다.
    • .sum : 각 열 => 각 Series를 .sum()한 결과로 또 다른 Series를 만든다.
      • Series는 .sum()하면 단일 값
      • DataFrame을 .sum()하면 Series
    • .describe() : 집계함수 요약
    • .round(자리수) : 자리수 반올림
    • .str.replace() : 포맷 변경하기
      • 숫자형 데이터로 변환 가능한 형태로 처리한다.
      • 데이터 분석에 유용한 형태로 가공하는 작업이다 (데이터 전처리)
      • comma(,)부터 .str.replace()로 삭제하자
        삭제
        결과 확인
    • .fillna() : 결측치 대체하기
    • .astype() : dtype 변환하기
      • 정수형 dtype인 int64로 변환한다.
    • .quantile()
      • 분위수 - 오름차순/내림차순 되있을 때 이를 나누는 지점
      • percentiles : 백분위수, 100개 영역 지점이 존재한다. 퍼샌트
      • quartiles : 4분위수, 4구역 지점이 존재한다.
        q = 가 확인할 지점이다.
    • .nlargest(n, columns, keep)
      movie_df.sort_values(by = 'IMDB_Rating', ascending=False) 랑 같은 결과가 나온다 쉽게 만든거라 생각하면 편하다
    • .nsmallest(n, columns, keep)
    • .sort_values()
    • .set_index()
    • .reset_index()
      • 인덱스를 초기화한다.
      • MultiIndex 작업도 초기화한다.
    • .drop() : 열 삭제
    • .drop() : 행 삭제
    • .drop() : 행 삭제(by labels, list-like)
    • .drop() : 열 삭제(axis=1)
      • axis = 0 : index 방향
      • axis = 1 : columns 방향
    • .insert() : 추가
    • .dropna()
      • NaN 유형 데이터를 drop 시킨다.
    • .fillna() : 결측치 대체하기

  • csv로 DataFrame 생성하기
    • df = pd.read_csv(' csv파일')
  • 단일 열 접근 -> Series
    • type(df[ '열이름' ])
  • 다중 열 접근
    • type(df['열이름', '열이름2', .. ])
  • 집계함수 + axis
    • 공간 절약되서 axis='index', axis = 0을 쓰며
    • sum()말고도, max, min, mean등의 집계합수와 axis를 사용해보면 


  • DataFrame 집계함수에서 숫자형 데이터만 있지 않을때 숫자만 처리하도록 하는 것
    • numeric_only=
  • include =
    • 'all'입력된 모든 열이 결과에 포함된다.
    • 데이터 유형의 목록 형태 결과를 지정된 데이터 유형으로 제한한다.
      • 숫자 유형에 대한 결과를 제한하려면 numpy.number를 사용
      • 객체 열에 대한 결과를 제한하려면 numpy.number를 사용하고,
      • select_dtypes와 유사한 방식으로 문자열도 사용할 수 있다.
      • pandas 범주형 열을 선택하려면 'category'를 사용한다.
    • None(기본값), 결과에는 모든 숫자 열이 포함된다.
      예시 1

 

예시 2
예시 3

  • keep = 
    • 중복값이 있는 경우
    • first : 첫 번째 등장하는 값들을 우선한다(기본값)
    • last : 마지막 등장 값
    • all : 중복된 값을 제거하지 않고 모든 값들을 선택. 이 경우 n보다 더 많은 항목들이 선택될 수 있다
      all 사용시 8개로 더 많이 검출된다.
  • errors=
    • .drop() 에러 제어, 무시하고 진행
  • del 을 이용한 열 삭제
    • 해당 데이터 주소로 찾아가서 del로 그 할당을 삭제한다.
  •  how= : Na 발견시 제거되는 방식 설정
    • NA 발견시 행 또는 열이 데이터프레임에서 제거되는 방식을 결정
    • 'any' : 만약 NA 값이 하나라도 존재한다면, 해당 행 또는 열을 제거
    • 'all' : 만약 모든 값이 NA인 경우에 해당하는 행 또는 열을 제거
  • subset= : 특정열의 NA만 확인한다.
  • method= :
  • limit= : 연속되어 결측치가 나올 경우, 결측치 대체 횟수 지정

 

 

학습하면서 어려웠던 내용
  • 방대한 양의 정보를얻어 혼란스럽고 이해한것 같지만 쓰려고하면 모르겠고,, 계속 찾아보면서 연습해야할 거 같다 :)
반응형

'데이터분석' 카테고리의 다른 글

29 Jupyter- DataFrame 심화  (0) 2024.01.08
28. Jupyter- DataFrame  (0) 2024.01.08
26. Pandas  (1) 2024.01.04
25. 트랜잭션 및 SQL 고급 문법  (0) 2023.12.30
24. JOIN  (1) 2023.12.29