TIL - 데이터 해석 문제

Qtory·2023년 9월 13일
0

AI

목록 보기
5/7
post-thumbnail

Mandatory Part

넷플릭스 데이터가 주어졌을 때, 다음 질문에 답하시오.

  • 한국 작품은 총 얼마나 있는가?
    - country column을 기준으로 한다.
    - "South Korea"인 경우만 인정한다. ("US, South Korea"는 인정하지 않음)

Bonus Part

넷플릭스 데이터가 주어졌을 때, 다음 질문에 답하시오.

  • 가장 많은 작품이 올라간 국가는 어디이고, 얼마나 많은 작품이 있는가?
    - country column을 기준으로 한다.
    - 단일 국가인 경우를 기준으로 결과를 구해보자.

# Mandatory Part
import pandas as pd

netflix=pd.read_csv('./netflix_titles.csv')

k_netflix=netflix[netflix['country'] == 'South Korea']
1_answer = len(k_netflix)


# Bonus Part

2_answer = netflix['country'].value_counts(sort = True).head(1)

Mandatory Part

다음 데이터가 주어졌을 때 2016.6 ~ 2017.6 기간의 5-MA(Moving Average) 비트코인 가격 그래프를 그려주세요.

  • 선의 색깔은 노란색(#f2a900) 으로 해야합니다.
  • x-axis label과 y-axis label은 적절한 텍스트로 추가되어야 합니다.
  • 이동평균의 기준은 Open Column으로 계산합니다.
  • 이외에도 그래프를 알아보기 쉽게 하기 위한 정보(Text, Facet 등)을 추가하는 것도 좋습니다.

💡 이동평균(Moving Average)법은 시계열 데이터를 표현하는 데에 많이 사용하는 방법 중 하나입니다.


Bonus Part

위에 주어진 데이터와 더불어 다음 데이터도 주어졌을 때, 2016.6 ~ 2017.6 기간에 해당하는 비트코인의 5-MA 그래프와 이더리움의 5-MA 그래프를 동시에 그려주세요.

  • 선의 색깔은 비트코인 : 노란색(#f2a900), 이더리움 : 검은색(#3c3c3d) 으로 해야합니다.
  • x-axis label과 y-axis label은 적절한 텍스트로 추가되어야 합니다.
  • 이동평균의 기준은 Open Column으로 계산합니다.
  • 이외에도 그래프를 알아보기 쉽게 하기 위한 정보(Text, Facet 등)을 추가하는 것도 좋습니다.
# Mandatory Part
import pandas as pd
import matplotlib.pyplot as plt

bitcoin=pd.read_csv('./BitCoin.csv')

bitcoin = bitcoin.sort_values('Date') # 날짜순 정렬
bitcoin = bitcoin[('2016-05-28' <= bitcoin['Date']) & (bitcoin['Date'] <= '2017-06-30')] # ma_5의 nan을 없애기 위해 4일 전부터 잘라준다.
ma_5 = bitcoin['Open'].rolling(window=5).mean()

bitcoin = bitcoin[('2016-06-01' <= bitcoin['Date']) & (bitcoin['Date'] <= '2017-06-30')] # 다시 문제의 16.6.1~ 부터 잘라준다.
ma_5 = ma_5[4:] # bitcoin과 데이터길이를 맞춰준다.

fig = plt.figure(figsize=(12,5))
plt.plot(bitcoin['Date'], ma_5, color='#f2a900', label='BitCoin')
plt.xticks(ticks=[i for i in range(1,377,30)], labels=['16.06', '16.07', '16.08', '16.09', '16.10','16.11',             # month별로 표시되게 x축을 정해준다.
                                                        '16.12', '17.01', '17.02', '17.03', '17.04', '17.05', '17.06'])

plt.legend(loc='upper right')
plt.xlabel("Date")
plt.ylabel("Close Price")
plt.title("5-MA of Bitcoin Price")
plt.show()



# Bonus Part
eth = pd.read_csv('ETH_day.csv')
eth = eth.sort_values('Date')
eth = eth[('2016-05-28' <= eth['Date']) & (eth['Date'] <= '2017-06-30')] # ma_5_2의 nan을 없애기 위해 4일 전부터 잘라준다.
ma_5_2 = eth['Open'].rolling(window=5).mean()

eth = eth[('2016-06-01' <= eth['Date']) & (eth['Date'] <= '2017-06-30')] # bitcoin처럼 16.6.1~ 부터 잘라준다.
ma_5_2 = ma_5_2[4:] # eth와 길이를 맞춰준다.

fig = plt.figure(figsize=(10,4))
plt.xticks(ticks=[i for i in range(1,377,30)], labels=['16.06', '16.07', '16.08', '16.09', '16.10','16.11', 
                                                        '16.12', '17.01', '17.02', '17.03', '17.04', '17.05', '17.06'])

plt.plot(eth['Date'], ma_5_2, color='#3c3c3d', label='Ethereum')
plt.plot(bitcoin['Date'], ma_5, color='#f2a900', label='BitCoin') # 40, 41번째 줄을 바꿔 출력하면 eth선 모양이 이상해진다.

plt.legend(loc='upper right')
plt.xlabel("Date")
plt.ylabel("Close Price")
plt.title("5-MA of Bitcoin & Ethereum Price")
plt.show()

0개의 댓글