데이터 시각화

pandas를 이용한 데이터 다루기

Maggie Matsui

Senior Content Developer at DataCamp

히스토그램

import matplotlib.pyplot as plt
dog_pack["height_cm"].hist()
plt.show()

개의 키 분포를 나타낸 히스토그램. 가장 작은 개는 20cm 미만이고, 가장 큰 개는 70cm입니다. 개의 키가 50cm에서 60cm 사이인 경우가 가장 많습니다.

pandas를 이용한 데이터 다루기

히스토그램

dog_pack["height_cm"].hist(bins=20)
plt.show()

이전 슬라이드에서 보여준 개의 키 분포를 나타낸 히스토그램과 동일하지만, 지금은 20개의 좁은 빈으로 나누어져 있습니다.

dog_pack["height_cm"].hist(bins=5)
plt.show()

이전 슬라이드에서 보여준 개의 키 분포를 나타낸 히스토그램과 동일하지만, 지금은 5개의 넓은 구간으로 나누어져 있습니다.

pandas를 이용한 데이터 다루기

막대 그래프

avg_weight_by_breed = dog_pack.groupby("breed")["weight_kg"].mean()
print(avg_weight_by_breed)
breed
Beagle         10.636364
Boxer          30.620000
Chihuahua       1.491667
Chow Chow      22.535714
Dachshund       9.975000
Labrador       31.850000
Poodle         20.400000
St. Bernard    71.576923
Name: weight_kg, dtype: float64
pandas를 이용한 데이터 다루기

막대 그래프

avg_weight_by_breed.plot(kind="bar")

plt.show()

견종별로 나뉜 개들의 킬로그램 단위 평균 체중을 나타낸 막대 그래프입니다. 세인트버나드가 가장 무겁고, 치와와는 가장 가볍습니다.

avg_weight_by_breed.plot(kind="bar",
    title="Mean Weight by Dog Breed")
plt.show()

화면 왼쪽과 동일한 막대 그래프이지만, '견종별 평균 체중'이라는 제목이 추가되어 있습니다.

pandas를 이용한 데이터 다루기

선 그래프

sully.head()
          date    weight_kg
0   2019-01-31         36.1
1   2019-02-28         35.3
2   2019-03-31         32.0
3   2019-04-30         32.9
4   2019-05-31         32.0
sully.plot(x="date", 
           y="weight_kg", 
           kind="line")
plt.show()

Sully라는 이름을 가진 개의 시간에 따른 몸무게 변화를 나타낸 선 그래프입니다. 체중은 27킬로그램에서 36킬로그램 사이에서 움직입니다.

pandas를 이용한 데이터 다루기

축 레이블 회전하기

sully.plot(x="date", y="weight_kg", kind="line", rot=45)
plt.show()

이전 슬라이드에서 본 설리의 몸무게 선 그래프와 거의 동일하지만, x축의 텍스트가 시계 방향으로 45도 회전되어 있습니다.

pandas를 이용한 데이터 다루기

산포도 그래프

dog_pack.plot(x="height_cm", y="weight_kg", kind="scatter")
plt.show()

개의 무게와 키의 관계를 나타내는 산포도. 개의 키가 커질수록, 개의 몸무게도 증가합니다. 다수의 클러스터가 있습니다. 품종에 따른 클러스터일까요?

pandas를 이용한 데이터 다루기

그래프 겹쳐 그리기

dog_pack[dog_pack["sex"]=="F"]["height_cm"].hist()
dog_pack[dog_pack["sex"]=="M"]["height_cm"].hist()

plt.show()

개의 키를 나타낸 두 개의 히스토그램이 하나의 그래프에 표시되어 있습니다. 하나는 파란색이고, 하나는 주황색입니다. 주황색 히스토그램이 파란색 히스토그램을 덮고 있어 정확한 내용을 보기 어렵습니다.

pandas를 이용한 데이터 다루기

범례 추가하기

dog_pack[dog_pack["sex"]=="F"]["height_cm"].hist()
dog_pack[dog_pack["sex"]=="M"]["height_cm"].hist()
plt.legend(["F", "M"])
plt.show()

이전 슬라이드와 동일하게 두 개의 히스토그램이 있는 그래프이지만, 범례가 추가되어 있습니다. 'F'는 여성으로 파란색으로 표시되고, 'M'은 남성으로 주황색으로 표시됩니다. 여전히 정확한 내용을 보기는 어렵습니다.

pandas를 이용한 데이터 다루기

투명성

dog_pack[dog_pack["sex"]=="F"]["height_cm"].hist(alpha=0.7)
dog_pack[dog_pack["sex"]=="M"]["height_cm"].hist(alpha=0.7)
plt.legend(["F", "M"])
plt.show()

이전 슬라이드와 동일하게 두 개의 히스토그램이 있는 그래프이지만, 이제 히스토그램이 투명합니다. 이렇게 하면 남성 히스토그램의 막대에 가려졌던 여성 히스토그램의 막대를 볼 수 있습니다. 아직 그렇게 예쁘진 않습니다. Seaborn 강의를 수강하면 그래프를 더 예쁘게 그릴 수 있습니다.

pandas를 이용한 데이터 다루기

아보카도

print(avocados)
            date          type  year  avg_price         size     nb_sold
0     2015-12-27  conventional  2015       0.95        small  9626901.09
1     2015-12-20  conventional  2015       0.98        small  8710021.76
2     2015-12-13  conventional  2015       0.93        small  9855053.66
...          ...           ...   ...        ...          ...         ...
1011  2018-01-21       organic  2018       1.63  extra_large     1490.02
1012  2018-01-14       organic  2018       1.59  extra_large     1580.01
1013  2018-01-07       organic  2018       1.51  extra_large     1289.07

[1014 rows x 6 columns]
pandas를 이용한 데이터 다루기

연습해봅시다!

pandas를 이용한 데이터 다루기

Preparing Video For Download...