[Visualization] 데이터분석과 시각화 (1)

박경민·2023년 1월 18일
0

[DataScience]

목록 보기
1/16
post-thumbnail

오늘은 Python을 통한 시각화에 대해 알아볼 것이다. 시각화란 무엇이고, 왜 하며, 어떻게 구현하는가?

01 시각화의 두 가지 목적

시각화는

  • 데이터 분석을 용이하게 한다. 예컨대 수치/정량으로만 나타낸 데이터의 한눈에 파악하는 것은 어렵다. 특히나 outlier (이상점) 에 관한 것이라면!

  • 리포팅을 용이하게 한다. 보고를 받는 입장에서도 더 이해하기 쉬운 것이 단순 숫자 데이터보다 그림이 섞인 데이터일 것.

정리하면 시각화는 자료를 분석하는 이 뿐 아니라 분석된 자료를 또다시 살피는 이 모두에게 이득이 되는 매우 합리적이고 필요한 기술이다.

02 선 그래프

그래프는 다음과 같은 간단한 코드로 그려볼 수 있다.

%matplotlib inline
import pandas as pd

matplotlib 이라는 라이브러리 앞에 %를 찍어주는 것이 포인트다. 여기에 이어서 코드를 작성해보자.

df = pd.read_csv('downloads/broadcast.csv', index_col=0)
df.plot(kind='line')

csv 파일 읽기를 실행하여 불러왔다.
그래프를 그리기 위해선 .plot() 을 사용해주기만 하면 되는데, kind = 'line'은 선그래프로 그리라는 뜻이다. 그러나 디폴트 값이므로 생략해도 좋다.

그러면 특정 방송사 (column)에 대해서는 어떡하란 말인가? 두 가지 방법이 있다.

df.plot(y = ['KBS', "JTBC"])

df[['KBS', 'JTBC']].plot()

첫번째 방법은 .plot 을 먼저 써주고 y 값으로 리스트 안에 있는 것을 찍어주자 이 말이고, 두 번째 방법은 이전에 열 값을 불러온 것 처럼 부르고 뒤에다가 .plot()을 찍어주는 것이다.

03 국가별 경제 성장 그래프

%matplotlib inline
import pandas as pd
df = pd.read_csv('data/gdp.csv', index_col=0)
df.plot(y = ['Korea_Rep', 'United_States','United_Kingdom', 'Germany', 'China', 'Japan'])

04 국가별 경제 성장 분석

05 막대 그래프

그렇다면 막대 그래프는 어떨까? 다음 자료를 분석해보자.

df = pd.read_csv('downloads/sports.csv', index_col = 0)
df


위 그래프는 그냥 봐도 알겠지만 '변화'가 그렇게 중요한 포인트가 아니다. 위처럼 카테고리 간 비교가 중요할 때 우리는 막대그래프 를 사용한다.

막대그래프를 사용하는 코드는 다음과 같다.

df.plot(kind = 'bar')

그래프를 180도 회전해서 보고싶다면 '가로' 라는 뜻의 h 를 넣어주자.

df.plot(kind = 'barh')

쌓고 싶다면 stacked = True 옵션을 넣어주자.

df.plot(kind = 'bar', stacked = True)

여자만 따로 결과를 보고싶다면 다음과 같이 한다. 이는 pandas 의 시리즈도 그래프 메서드를 지원하기 때문이다.

06 실리콘 밸리에는 누가 일할까?

%matplotlib inline
import pandas as pd
df = pd.read_csv('data/silicon_valley_summary.csv')
filter = (df['gender'] =='Male') & (df['job_category']=='Managers') & (df['race_ethnicity'] != ('All'))
df_ethnicity = df.loc[filter,['race_ethnicity', 'count']]
df_ethnicity = df_ethnicity.set_index('race_ethnicity')
df_ethnicity.plot(kind = 'bar', y= 'count')

profile
Mathematics, Algorithm, and IDEA for AI research🦖

0개의 댓글