내일배움캠프/TIL

[TIL]241224_코드카타, 개인과제4

dydatablog 2024. 12. 24. 21:38
728x90

26. 음양 더하기

def solution(absolutes, signs):
    answer = 0
    for i, signs in zip(absolutes, signs):
        if signs == True :
            answer += i
        else:
            answer -= i
    return answer
    
    #다른 풀이
    def solution(absolutes, signs):
    return sum(num if sign else -num for num, sign in zip(absolutes, signs))

https://wikidocs.net/92539

 

07) zip과 딕셔너리

[TOC] ## 두 개의 리스트를 묶기 zip은 두 개의 리스트를 서로 묶어줄 때 사용합니다. ``` name = ['merona', 'gugucon'] price = …

wikidocs.net

 

27. 핸드폰 번호 가리기

def solution(phone_number):
    answer = '*' * (len(phone_number)-4)
    answer += phone_number[-4:]
    return answer

 

28. 없는 숫자 더하기

def solution(numbers):
    full_set = set(range(10))
    numbers_set = set(numbers)
    answer = sum(full_set - numbers_set)
    return answer

 

* 차집합을 구하기 위해 numbers와 1-9까지의 숫자들을 집합형으로 변환

 집합형 데이터의 특징:

  • 중복을 허용하지 않는다.
  • 순서가 없다(Unordered).

 


문제4. 삼성전자 주가 데이터 처리

  1. 출제의도
    • 새로운 라이브러리를 통해 문제를 해결할 수 있다.
    • 정보를 불러와 데이터프레임으로 가공할 수 있다.
  2. 배경

FinanceDataReader는 한국 주식 가격, 미국 주식 가격, 지수, 환율, 암호 화폐 가격, 종목 리스트 등을 제공하는 API 패키지입니다. 아래 주소를 참고하여, 해당 라이브러리에 대해서 알아보시길 바랍니다.

https://wikidocs.net/172650

종목코드조회 날짜를 이용하면, 다음과 같이 불러와집니다.

컬럼 (column) 설명

  • Open: 시작가 (해당일 주식장이 시작했을 때의 해당종목 가격)
  • High: 최고가
  • Low: 최저가
  • Close: 종가 (해당일 주식장이 마감했을 때의 해당종목 가격)
  • Volume: 거래량 (해당일 거래된 해당종목 주식의 수)
  • Change: 전일 대비 증감율

원하는 주식 가격 정보를 불러오고, pandas를 통해서 원하는 형태로 가공하고자 합니다. 아래 요구사항을 읽고, 코드를 작성하세요.

  1. 요구사항
  • 4-1) FinanceDataReader 라이브러리를 활용하여 2019-01-01부터 2024-12-16까지의 삼성전자(종목코드: 005930)의 주가정보를 불러온 후, 월평균 종가를 구하세요.
    • Close 칼럼 이용
    • "samsung_mean" 새로운 데이터 프레임에 저장
  • 4-2) 평균 종가(Close)의 전월대비 증감율을 구하세요.
    • samsung_mean 데이터프레임에 "전월대비(%)" 컬럼 생성
    • 소수점 첫째자리 반올림
  • 4-3) 평균 종가(Close)의 전년동월대비 증감율을 구하세요.
    • samsung_mean 데이터 프레임에 "전년동월대비(%)" 컬럼 생성
    • 소수점 첫째자리 반올림
    • 3단계 까지 완성후, samsung_mean을 출력하세요.
      1. Skeleton 코드
!pip install -U finance-datareader
import FinanceDataReader as fdr
df = fdr.DataReader('005930', '2019-01-01', '2024-12-16')
#4-1
monthly_grouped = df.groupby(df.index.to_period('M')).mean()
samsung_mean = monthly_grouped[['Close']].copy()

#4-2
samsung_mean['전월대비(%)'] = samsung_mean['Close'].pct_change() * 100

samsung_mean

++++++추가 예정

728x90