반응형

본 포스팅은 판다스의 공식 튜토리얼 문서(https://pandas.pydata.org/docs/getting_started/intro_tutorials/04_plotting.html)를 참고하여 학습한 내용을 정리하였다.

깃허브: https://github.com/PSLeon24/Research_python/blob/main/pandas/pandas4.ipynb

 

GitHub - PSLeon24/Research_python: research deep

research deep. Contribute to PSLeon24/Research_python development by creating an account on GitHub.

github.com

 

판다스를 활용해 플롯(plots)을 어떻게 만들 수 있을까?

- How do I create plots in pandas?

이번 포스팅에서는 데이터를 쉽고 빠르게 파악하기 위해 시각화하는 방법을 간단히 살펴보고자 한다.

이를 위해 matplotlib에서 pyplot을 사용할 것인데, 아래와 같이 import 해주고 alias로 plt를 지정해준다.

import matplotlib.pyplot as plt

 

오늘 학습을 진행하기 앞서 아래에 접속해서 실습에 사용할 대기질이 기록된 데이터를 다운받는다.

- https://github.com/PSLeon24/Research_python/blob/main/pandas/air_quality_no2.csv

 

데이터를 다운 받았으면, 대기질을 뜻하는 air_quality에 불러온 값을 대입하고 head를 통해 상위 5개의 데이터를 확인해보자.

측정된 시간과 측정된 지역 3군데(antwerp, paris, london)이 column으로 있는 것을 확인할 수 있고 사이사이에 결측치도 있음을 확인할 수 있다.

그리고 위의 데이터프레임의 형태를 아래 read_csv에서 인수로 index_col과 parse_dates에 각각 0과 True를 넣어 호출해서 첫 번째 열을 0, 1, 2, 3, 4의 값이 아닌 datetime이 되도록 수정해보자.

 

이러한 데이터들이 있을 때 matplotlib을 활용해서 아래와 같이 쉽고 빠르게 plot을 그려 데이터를 확인할 수 있다.

DF를 사용하면 판다스는 숫자 데이터가 있는 각 열에 대해 선 플롯을 만든다.

 

위 그래프를 보면 station_antwerp, station_paris, station_london 3개의 열에 대해 모두 선 플롯이 그려졌음을 확인할 수 있다.

이때, station_paris에 해당하는 시리즈의 데이터만 시각화하고 싶으면 아래와 같이 나타낼 수 있다.

그리고 x축은 station_london 시리즈의 데이터로 하고 y축은 station_paris 시리즈의 데이터로 하는 산점도를 아래와 같이 나타낼 수도 있다.

그러면 이제 x축은 station_antwerp 시리즈의 데이터, y축은 station_paris 시리즈의 데이터로 하는 산점도를 나타내는 것 또한 쉽게 할 수 있을 것이다.

 

일반적인 선 플롯과 산점도를 사용해봤다.

이외에도 플롯의 다양한 메소드로는 무엇이 있을까?

area, bar, barh, box, density, hexbin, hist, kde, line, pie, scatter 등 다양한 메서드가 존재함을 확인할 수 있다.

그 중에서도 box는 상자그림과 이상값 포스팅(https://psleon.tistory.com/77)에서 다룬 상자그림을 나타내는 메서드로 실습해보면 아래와 같다.

 

이외에도 아래와 같이 다양하게 나타낼 수 있으며 matplotlib을 추가로 학습한다면 자유자재로 데이터 시각화를 진행할 수 있다.