Python 을 활용한 데이터분석 19

상관계수, 산점도, 회귀분석

상관계수를 알기전에 상관분석을 알아야 한다. 상관분석은 두 변수 간에 어떠한 선형적 관계를 갖고 있는지를 분석하는 방법이다. 상관계수의 값에 따라서, 두 변수가 독립적인지, 상관관계가 있는지 없는지를 분석 할 수 있는데 상관계수가 -1에 수렴할수록 두 변수는 음의 상관을 가지고, 0이면 독립, 1이 가까울수록 양의 상관을 갖는다. 데이터의 상관변수를 구해보면, df.corr() 변수가 4개가 나오는데, 이 상관계수들을 heatmap 을 사용하여 시각화 하려고 한다. annot = True 은 두 변수간의 상관계수 값을 표현해주었고, cmap 은 heatmap 의 color, mask 는 서로 중복되는 값을 방지하기 위해서, 작성해주었다. 상관계수 시각화 : https://seaborn.pydata.org..

단변량 수치 변수 시각화

데이터의 많은 변수중에 우리가 보고싶은 변수 하나만 골라서 시각화 하고 싶을 때가 있을 것이다. 예를들어서, 올리브영 구매목록의 모든 데이터들을 바탕으로, 어느 연령대의 소비자가 가장 많은지를 통계적으로 분석을 한다고 했을때 '나이' 라는 변인 하나로 데이터의 통계를 보고 싶을 때가 있을 것이다. 그렇다면, 단변량 수치 변수 시각화를 할 줄 알아야 한다. 굉장히 간단하다. seaborn을 활용하여 시각화 하고 데이터셋은 우리가 원하는 데이터의 변량을 넣어주면 된다. -> sns.distplot("데이터셋") 단변량이기 때문에 Histogram 을 사용하여 시각화 하는것이 편하다고 판단했다. 우리는 위도의 변량의 수치를 시각화 했다. 위도의 수치를 시각화 하였을때, 두가지의 분포로 나뉘어서 그려졌다. 지역..

기술통계값 (평균, 사분위수, 분산, 표준편차 )

우리에게 데이터가 주어졌을때 기술통계값으로 데이터를 관찰하는 것은 필수적이다. 대략적인 데이터의 분포를 볼 수 있고, 이상값은 얼마나 있는지, 평균은 어느정도 되는지, 중앙값과 평균의 차이는 얼마나 되는지 등 기술통계값으로 대략적인 데이터의 분포 파악이 가능하다. 우선, 데이터의 기술통계값을 describe()를 사용하여 요약하여 보자. * df 는 데이터 셋을 담은 변수이다. * -> describe 를 사용하면, 데이터의 수, 평균, 표준편차, 최소값, 1,2,3사분위수, 최대값을 볼 수 있다. * 2사분위수와 중앙값은 같은 값이다. 개별 기술통계값 구하기 개별 기술통계값은 이러하다. 개별 기술통계값을 알고 싶으면, 위에 나온 명령어를 사용하면 된다. * 나는 '위도' 데이터의 값이 궁금해서 '위도'..

행, 열을 기준으로 값을 가져오기

데이터 셋을 담은 변수 df 를 호출하면, 그림과 같이 데이터프레임이 나온다. 이렇게 행도 많고, 열도 많아서 이를 요약하기 위해서 head 를 써왔었는데 행열의 인덱싱(슬라이싱)을 활용하면 더 구체적으로 정보를 불러올 수 있다. 1. 상호명, 도로명주소 컬럼만 가져오기 df[ [ "상호명", "도로명주소"] ] # 2차원 배열 처럼 대괄호를 두개 만들어 준다. 행열은 [a,b] 이다. a가 행, b가 열이다. 이 점만 알고 있으면 적용하는 방법은 쉽다. 2. 0,1,2 번째 인덱스 행 가져오기 df.loc[:2] 3. 0, 1, 2 번째 행의 "상호명" 가져오기 df.loc[:2, "상호명"] iloc 로 슬라이싱을 통해 가져오기 iloc 를 쓰면 행과 열을 자율적으로 가져 올 수 있기 때문에 iloc..

결측치 시각화, 필요없는 컬럼 제거하기(Missingno, drop)

Missingno 라이브러리를 사용하여 결측치 시각화하기 단순히 막대그래프를 이용해 결측치를 시각화 해볼 수 있지만, missingno 로도 시각화가 가능하다. missingno는 별도의 설치가 필요한 라이브러리인데, Anaconda prompt 창을 켜서 conda install -c conda-forge missingno conda install -c conda-forge/label/gcc7 missingno conda install -c conda-forge/label/cf201901 missingno 중 하나의 명령어를 사용해서 프로그램을 설치해주면, 주피터 노트북에서 missingno 라이브러리 사용이 가능하다. missingno 라이브러리를 사용해서 결측치를 시각화 해보면, 결측치가 있는 변수..

상가 정보 데이터 불러오기 및 데이터 정보 확인 하기

주택 평당분양가격에 대해 지역별, 연도를 기준으로 데이터 분석을 했었다. 이번에는 상가정보를 분석해보는 시간을 가지려고 한다. 우선 공공데이터포털에 가서 데이터셋을 다운로드 한다. * 나는 김조은 선생님이 클라우드를 통해 올려주신 자료를 다운로드 받았다. 여기서 맨 위에 상가상권정보 파일을 클릭하면 파일이 두개가 나오는데, 그 중 왼쪽에 있는 상가업소정보_201912_01.csv 파일을 다운로드 받는다. 왼쪽에 있는 데이터셋을 다운로드 하면 엑셀 파일 하나를 받을 수 있는데, 이 엑셀 파일을 우리가 데이터 분석을 하려는 주피터 노트북 파일 안에 data 파일 안에 삽입 시켜주어야 우리가 정상적으로 엑셀 파일을 업로드 할 수 있다. 파일로드 하는 방법은 이러하다. 주피터 노트북에 %ls data 라고 입력..

2013년 부터 최근 데이터까지 시각화 하기 (seaborn)

데이터 분석 기초의 마지막 시간이다. 2013년 부터 최근 데이터까지 데이터프레임을 합쳐주어서 heatmap 으로 시각화 해보았으니, 오늘은 이제까지 배운 라이브러리 함수를 활용하여 시각화 해보자! 연도별 평당분양가격 시각화하기 seaborn 이 가장 사용하기 편하니 seaborn 을 사용해서 시각화 해보겠다. sns.barplot(data = df, x = "연도", y = "평당분양가격") -> df 는 2013~ 최근 데이터를 합친 데이터 프레임이다. 해석: 시간이 지날수록 평당분양가격은 상승 하고 있다. 2. pointplot plt.figure(figsize = (12,4)) # 그래프 크게 sns.pointplot(data = df, x = "연도", y = "평당분양가격", hue = "지역..

두가지의 다른 데이터 프레임을 하나로 합치고 시각화하기(concat, heatmap)

저번시간에는 melt 와 apply 함수를 사용하여 df_first 데이터를 df_last 데이터의 컬럼과 맞춰주었다. 이제 맞추어진 두 데이터를 합쳐야 분석하기에 용이할것이다. 나는 두개의 데이터 프레임을 concat 으로 합칠것이다. 그러기 위해서는 컬럼명이 일치한 두 데이터 프레임을 담은 변수가 필요하다. 컬럼이 일치하는 df_first 의 데이터 프레임을 df_first_preapare, df_last 의 데이터 프레임을 df_last_prepare 라고 설정해준다면, 1. 먼저 지정할 컬럼을 변수 cols 에 할당한다. cols = ['지역명', '연도', '월', '평당분양가격'] 2. loc 함수를 이용하여 df_last_prepare 변수에 데이터 프레임 넣기 3. copy 함수 이용하여 ..

데이터 전처리 기초 - melt, apply 함수 사용하기

저번시간까지 df_last 변수에 저장된, 2015년 이후 ~ 2019년 까지의 전국 신규 아파트 분양가격 동향의 데이터를 시각화 하고 분석하는 시간을 가졌었다. 이제는 df_first 의 데이터도 분석하는 시간을 갖게 될것이다. 우선, 우리는 2015년 이후와 이전의 데이터를 병합하며 비교를 할 것인데, 그렇다면 두 데이터를 비교하는 컬럼이 같아야 할 것이다. 간단히 말해서, 두 데이터가 비교되기 쉽게 일관성 있는 데이터의 형태로 전환하는 과정이 있어야 된다는 것이다. 어쩌면 이것이 데이터 전처리의 시작이라고 볼 수 있을 것이다. 데이터 전처리란? 데이터의 결측치 및 이상치를 확인하거나 제거하고 불일치되는 부분을 일관성 있는 데이터의 형태로 전환 하기도 하는 이 전 과정을 데이터 전처리 라고 말한다. ..

lmplot (산점도 + 회귀선), swarmplot

lmplot 과 swarmplot 에 대해서 공부해보자 lmplot 은 산점도 +회귀선이 같이 그려지는 그래프이다. 데이터가 어디에 몰려있고, 회귀선이 어떻게 그려지는지를 알 수 있다. lmplot 또한 seaborn lib 를 활용하기 때문에 작성하는 방법은 비슷하다. 단, lmplot 은 x ,y 축이 모두 수치형 데이터일때 표현하기 좋다. 해석 -> 각 전용면적 모두 연도가 늦어질수록 평당분양가격이 증가하는 경향을 보인다. 산점도를 볼 수 있어서 어느 가격에 분포가 많이 되어있는지도 알 수있고, 85~102 전용면적에서는 이상값 때문에 2019년의 평균값이 대폭 상승 했다는 점도 알 수 있다. 하지만, lmplot 은 x , y 축이 모두 수치형 데이터 일때 더 효율적이다. swarmplot 은 산..