datamanim Type1. 넷플릭스 주식 데이터
넷플릭스 주식 데이터
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/Datamanim/datarepo/main/nflx/NFLX.csv")
df.head()
Date | Open | High | Low | Close | Adj Close | Volume | |
---|---|---|---|---|---|---|---|
0 | 2002-05-23 | 1.156429 | 1.242857 | 1.145714 | 1.196429 | 1.196429 | 104790000 |
1 | 2002-05-24 | 1.214286 | 1.225000 | 1.197143 | 1.210000 | 1.210000 | 11104800 |
2 | 2002-05-28 | 1.213571 | 1.232143 | 1.157143 | 1.157143 | 1.157143 | 6609400 |
3 | 2002-05-29 | 1.164286 | 1.164286 | 1.085714 | 1.103571 | 1.103571 | 6757800 |
4 | 2002-05-30 | 1.107857 | 1.107857 | 1.071429 | 1.071429 | 1.071429 | 10154200 |
Q103. 매년 5월달의 open가격의 평균값을 데이터 프레임으로 표현하라
만약 date col을 Date.dt.month 로 그룹핑 하게 된다면, 연도를 구분하지 않고 달만을 가지고 그룹핑 하게된다.
지금은 각 년도의 특정 월을 조건으로 그룹핑 해야 하는 것이므로, 날짜 컬럼을 특정 형식으로 변환해야 한다.
# 우선 object 형식 datetime 타입으로 변환
df['Date'] = pd.to_datetime(df.Date)
strftime vs strptime
문자형을 변경하는데에는 위의 두가지 방법이 있으므로 이번 시간에 두가지를 구분해 보도록 하겠다.
변환문자 : ‘%Y-%m-%D %H:%M:%S’
strftime (str f time : string format time)
철자를 구분해서 이해하면 string 타입의 시간이란 뜻이다.
즉, 시간타입을 특정문자 타입으로 변환 시키는 것이다.
문법 : 변수.strftime(‘%시간지시자’)
strptime (str p time : string parse time)
반대로 문자타입을 시간타입으로 변경하는 것이다.
문법 : datetime.strptime(변수, ‘%시간지시자’)
주의. 기존 문자열과 똑같은 시간지시자 사용해야함
df['특정월변환'] = df.Date.dt.strftime('%Y-%m')
df[df.Date.dt.month == 5].groupby('특정월변환').Open.mean()
특정월변환
2002-05 1.155833
2003-05 1.641497
2004-05 4.261143
2005-05 1.951905
2006-05 4.163571
2007-05 3.159351
2008-05 4.435034
2009-05 5.790571
2010-05 14.417071
2011-05 34.650272
2012-05 10.523247
2013-05 31.936429
2014-05 51.121292
2015-05 85.057429
2016-05 92.705715
2017-05 158.255455
2018-05 329.779541
2019-05 359.664548
2020-05 433.880499
2021-05 496.923996
Name: Open, dtype: float64
타입 변환 추가연습
from datetime import datetime
now = datetime.now()
print(f'현재 시간 : {now}, 날짜 타입 : {type(now)}')
현재 시간 : 2023-12-09 23:41:42.338150, 날짜 타입 : <class 'datetime.datetime'>
strfnow = now.strftime('%y-%m-%d %H:%M:%S')
strfnow
'23-12-09 23:41:42'
strpnow = datetime.strptime(strfnow,'%y-%m-%d %H:%M:%S')
strpnow
datetime.datetime(2023, 12, 9, 23, 41, 42)
% 뒤에 쓰는 것을 서식 지시자 라고 하는데, chat gpt 에게 물어보니 종류가 너무 많다.
(%Y-%m-%D %H-%M-%S 만 외우고, 년도 2자리는 그냥 %y라는 것까지만 기억하자..)
%Y: 4자리 연도 (예: 2023)
%y: 2자리 연도 (예: 23)
%m: 2자리 월 (01 ~ 12)
%d: 2자리 일 (01 ~ 31)
%H: 2자리 시간 (00 ~ 23)
%M: 2자리 분 (00 ~ 59)
%S: 2자리 초 (00 ~ 59)
%f: 마이크로초 (000000 ~ 999999)
%a: 요일의 짧은 이름 (예: Sun, Mon)
%A: 요일의 전체 이름 (예: Sunday, Monday)
%b: 월의 짧은 이름 (예: Jan, Feb)
%B: 월의 전체 이름 (예: January, February)
%p: AM 또는 PM
%I: 12시간제 시간 (01 ~ 12)
%w: 요일 (0=일요일, 6=토요일)
%j: 연중 일수 (001 ~ 366)
%U: 연중 주수 (일요일 시작, 00 ~ 53)
%W: 연중 주수 (월요일 시작, 00 ~ 53)
%z: UTC 오프셋 (예: +0100, -0500)
%Z: 시간대 이름 (예: UTC, EST, CST)
Leave a comment