📌 데이터프레임 변경
- 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):
📌 단변량 분석 - 범주형
범주형 변수 시각화: Bar Plot
- sns.countplot
- 범주별 빈도수를 계산하고 bar plot으로 나타냄
- plt.bar
- 범주별 빈도수를 직접 계산한 결과 입력 시 범주별 빈도 bar plot 생성
❗마치며..
데이터를 분석하기 전에 어떻게 처리해야 하는지에 대해 배웠다..
아직 손에 익숙하지도 않고 이렇게 처리한 데이터를 어떻게 분석해야 할지 감도 잘 안 오지만,
다음 번 포스팅에는 종합 문제를 통해 단변량, 이변량 분석을 통해 어떻게 분석하고 의미를 찾아내야 하는지 복습하면서 정리해 보고자 한다.
곧 미니 프로젝트인데 걱정 반, 기대 반..
sns.countplot에 범쥬별 빈도수는 무엇인가요?