[TIL Day16] Python으로 시각화 프로젝트

이다혜·2021년 5월 7일
0

TIL

목록 보기
17/60

3주차 Weekly Mission

Mission 1. Netflix and Code

넷플릭스 데이터셋으로 다음 문제를 해결해주세요.

A. 한국 작품은 총 얼마나 있는가?

  • country column을 기준으로 합니다.
  • "South Korea"인 경우만 인정합니다. ("US, South Korea"는 인정하지 않음)
  1. 데이터셋 불러오기

  2. netflix['country'] == 'South Korea'조건을 이용해서 한국 작품이 총 몇 편 있는지 확인하자.

B. 가장 많은 작품이 올라간 국가는 어디이고, 얼마나 많은 작품이 있는가?

  • country column을 기준으로 합니다.
  • 단일 국가인 경우를 기준으로 결과를 구해봅시다.
  1. 국가 정보를 이용하기 위해 결측치를 제거하자.
    netflix.dropna(axis=0, subset=['country'])를 이용하면 'country'열의 값이 NaN인 '행' 전체를 삭제한다.

  2. 단일 국가에서 만든 작품만 골라보자.
    필터링 조건에는 ~(not), &(and), |(or) 연산자 등을 사용할 수 있다.
    ~(netflix_single_country['country'].str.contains(',')) 조건으로 'country'열에 ','(쉼표)가 없는 경우만 골라냈다.

  3. 국가별로 만든 작품의 개수를 세어보자. .groupby(by=netflix_single_country['country']).count()를 이용했다.

  4. 가장 많이 만든 국가는 어디인지, 얼마나 많은 작품이 있는지 확인하자.
    netflix_by_country[netflix_by_country == max(netflix_by_country)]

Mission 2. 가즈아!

비트코인 데이터셋이더리움 데이터셋으로 다음 문제를 해결해주세요.

A. 2016.6 ~ 2017.6 기간의 5-MA(Moving Average) 비트코인 가격 그래프를 그려주세요.

  • 선의 색깔은 노란색(#f2a900) 으로 해야합니다.
  • x-axis label과 y-axis label은 적절한 텍스트로 추가되어야 합니다.
  • 이동평균의 기준은 Open Column으로 계산합니다.
  • 이외에도 그래프를 알아보기 쉽게 하기 위한 정보(Text, Facet 등)을 추가하는 것도 좋습니다.
  1. 데이터셋 불러오기
    "Date" column을 인덱스로 지정하고 사용할 "Date", "Open" column만 가져오자.
    read_csv()의 인자로 index_col="Date", parse_dates=True, usecols=["Date", "Open"]를 넣어주었다.
    parse_dates를 설정하면 날짜형식을 자동으로 인식한다.

  2. 날짜(인덱스)기준으로 데이터를 정렬한 뒤, 사용할 부분(2016.6 ~ 2017.6) 기간만 가져오자.

  3. .Open.rolling(window=5).mean()를 이용해서 손쉽게 5-MA(Moving Average)를 구하자.

  4. 비트코인의 가격 그래프를 그린다.
    plt.ploy(x, y)를 쓰지 않아도 bitcoin.plot(color='#f2a900')으로 바로 그래프를 그릴 수 있다.
    plt.grid(True, axis='y')으로 보조선을 그릴 수 있다.

B. 2016.6 ~ 2017.6 기간에 해당하는 비트코인의 5-MA 그래프와 이더리움의 5-MA 그래프를 동시에 그려주세요.

  • 선의 색깔은 비트코인 : 노란색(#f2a900), 이더리움 : 검은색(#3c3c3d) 으로 해야합니다.
  • x-axis label과 y-axis label은 적절한 텍스트로 추가되어야 합니다.
  • 이동평균의 기준은 Open Column으로 계산합니다.
  • 이외에도 그래프를 알아보기 쉽게 하기 위한 정보(Text, Facet 등)을 추가하는 것도 좋습니다.
  1. 데이터를 불러와 이동평균을 구하는 것까지 위(1~3)와 동일한 작업이다.

  2. 비트코인과 이더리움의 가격 그래프를 같이 나타낸다.
    - 구분이 쉽도록 라벨 표시를 해준다.
    bitcoin.plot(color='#f2a900', label='BTC')
    ethereum.plot(color='#3c3c3d', label='ETH')
    plt.legend()를 써주는 것을 잊지 말자!
    - x축을 월별로 표시하고 싶어서 MonthLocator()를 사용했다.
    ax.xaxis.set_major_locator(MonthLocator())
    - 날짜형식이 길어 겹쳐 표현될 수 있어서 90도 회전해 나타냈다.
    ax.tick_params(axis="x", labelrotation= 90)

profile
하루하루 성장중

0개의 댓글