[KT AIVLE 4기] 데이터 처리

리니·2023년 8월 26일
4

KT AIVLE

목록 보기
4/22
post-thumbnail

📌 데이터프레임 변경

  • columns 속성 변경: 모든 열 이름 변경
  • rename() 메소드 사용: 지정한 열 이름 변경
    • 이때. inplace = True는 진짜로 수정하라는 말.
.rename(columns = {key: value}, inplace = True)

열 추가

  • 맨 뒤에 열 추가
  • 지정한 위치에 열 추가

열 삭제

  • drop() 메소드를 사용해 열 삭제
    • axis = 0: 행 삭제(기본값)
    • axis = 1: 열 삭제
    • inplace = False: 삭제한 것 처럼 보이게 하는 것
    • inplace = True: 진짜로 삭제

📌 데이터프레임 결합

pd.concat()

  • 매핑기준: 인덱스(행), 칼럼이름(열)
  • 방향: axis = 0
    • 세로 (행)로 합치기(위, 아래로 붙여라 / 행 방향으로 붙여라!)
    • 칼럼 이름 기준
  • 방향: axis = 1
    • 가로 (열)로 합치기 (옆으로 붙여라)
    • 행 인덱스 기준
  • 방법 join
    • 'outer': 모든 행과 열 합치기(기본값)
    • 'inner': 같은 행과 열 합치기

pd.merge()

  • 매핑기준: 특정 칼럼(key)의 값 기준으로 결합
  • 데이터베이스 테이블 조인과 같다.
  • 지정한 칼럼의 값을 기준으로 병합
    • 옆으로만 병합
    • 어떤 칼럼을 기준 삼을 것인가?
    • 방법 how
      • inner: 같은 값만
      • outer: 모두
      • left: 왼쪽 df는 모두, 오른쪽 df는 같은 값만
      • right: 오른쪽 df는 모두, 왼쪽 df는 같은 값만

pd.pivot

  • pivot 함수를 이용하여 집계된 데이터를 재구성할 수 있다.
  • 문법: dataframe.pivot(index, column, values)

📌 시계열 데이터

  • 행과 행에 시간의 순서(흐름)가 있고
  • 행과 행의 시간간격이 동일한 데이터

날짜 요소 뽑기

  • 날짜 타입의 변수로부터 날짜의 요소를 뽑아낼 수 있다.
  • .dt.날짜요소

시간에 따른 흐름 추출하기: Time Lag

  • .shift()
    • 시계열 데이터에서 시간의 흐름 전후로 정보를 이동시킬 때 사용

시간에 따른 흐름 추출하기: Moving Average

  • .rolling().mean()
    * 시간의 흐름에 따라 일정 기간 동안 평균을 이동하면서 구하기

시간에 따른 흐름 추출하기: 차분

  • .diff()
    • 특정 시점 데이터, 이전시점 데이터와의 차이 구하기

📌 시각화 라이브러리

데이터의 시각화

  • 수 많은 데이터를 한 눈에 파악하는 두 가지 방법
  • Focus
    • 우리가 다루는 데이터에는 비지니스가 담겨 있다
    • 데이터 시각화의 목적은
      • 아름다운 그래프가 아니라, 통계적인 해석을 넘어, 비지니스의 인사이트를 파악하는 것이다.
  • 한계
    • 그래프와 통계량에섯 요약된 정보(원본)가 표현된다.
    • 요약을 하는 관점에 따라 해석의 결과가 달라질 수 있다.
    • 어떤 식으로든 요약을 하면, 정보의 손실이 발생된다.

기본 코드 구조

  • 라이브러리: matplotlib.pyplot
  • plt.plot()
    • 기본 라인차트를 그려준다.
    • plt.plot(x, y)
    • plt.plot(x, y, data)
  • plt.show()
    • 그래프를 화면에 출력해 준다.

부가적인

  • plt.xticks(rotation=각도) : x축 값 조정하기
  • plt.xlabel(), plt.ylabel(): 축 레이블 추가
  • plt.title(): 그래프 제목(타이틀) 추가
  • 이 외에도 색, 라인 스타일, 마커 등을 바꿀 수 있다.

📌 단변량 분석 - 숫자형

  • df.describe()
    - 데이터 프레임의 숫자형 변수들에 대해서 기초 통계량을 구함.

숫자형 변수 시각화하기

  • 기초 통계량(basic statistics)
    • Box Plot:
      • plt.boxplot()
      • 사전에 반드시 NaN 제외
        • sns.boxplot은 NaN을 알아서 제거해 줌
  • 도수분포표(frequency table)
    • Histogram:
      • plt.hist(변수명, bins = 구간 수)
    • Density Plot (KDE Plot):
      • sns.kdeplot(변수명)

📌 단변량 분석 - 범주형

  • 범주별 빈도수
    • 시리즈.value_counts()

범주형 변수 시각화: Bar Plot

  • sns.countplot
    • 범주별 빈도수를 계산하고 bar plot으로 나타냄
  • plt.bar
    • 범주별 빈도수를 직접 계산한 결과 입력 시 범주별 빈도 bar plot 생성

❗마치며..

데이터를 분석하기 전에 어떻게 처리해야 하는지에 대해 배웠다..
아직 손에 익숙하지도 않고 이렇게 처리한 데이터를 어떻게 분석해야 할지 감도 잘 안 오지만,
다음 번 포스팅에는 종합 문제를 통해 단변량, 이변량 분석을 통해 어떻게 분석하고 의미를 찾아내야 하는지 복습하면서 정리해 보고자 한다.
곧 미니 프로젝트인데 걱정 반, 기대 반..

profile
😊

1개의 댓글

comment-user-thumbnail
2023년 8월 28일

sns.countplot에 범쥬별 빈도수는 무엇인가요?

답글 달기