일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 함수
- 직장인파이썬
- 클라우드
- dataframe
- 주식투자
- 자동트윗
- python
- cloud
- 이동평균
- 파이썬
- 개발자
- 오라클클라우드
- 크롤링
- 우분투
- 단기투자
- 차트분석
- 오라클
- 주가상승
- 보조지표
- 고등퀀트
- 퀀트투자
- 주가하락
- pandas
- ubuntu
- 변동성
- 가치투자
- 라이브러리설치
- Firewall
- 트위터
Archives
- Today
- Total
주경야매 미국주식
데이터프레임에서 인덱스값을 기준으로 최종 열을 뽑을때 본문
주가 등 시계열데이터를 다룰 때 가끔 마주치는 일이다.
일년 전 오늘 주가는 얼마였지?
오늘이 2022년 6월13일 이라면, 일년 전은 2021년 6월13일. 그런데, 하필 그날은 일요일이다.
일요일엔 장이 열리지 않으니 그 날짜에는 데이터가 없는게 당연하다. 그래서 늘 하듯 dataframe.loc('날짜') 로 데이터를 찾으면 값이 없다고 나온다. 뭐 이 정도에서 끝난다면 괜찮지만, 일년 전 대비 주가 변동율 같은걸 계산할 때는 일년 전 주가가 없으니 변동율을 계산할 수 없게 된다.
주가는 기본적으로 현재까지의 최종 주가를 오늘의 주가로 한다. 오늘이 일요일이라면, 오늘의 주가는 직전 금요일의 주가가 오늘 주가다. 위의 경우 사람이 수작업으로 한다면 2021년 6월11일 주가를 당겨와서 했을텐데, 컴퓨터는 이걸 일일이 지정해주지 않으면 알아서 처리해주지 않는다.
그럼 어떻게 하지? 이럴 때 필요한게 asof 다. 영어로 as of ~ 는 '~를 기준으로' 라는 표현이니 참 직관적인 함수명이다.
dataframe.asof(기준)
데이터프레임 뒤에 asof(기준) 를 붙여주면 기준을 기준으로 최종값을 반환한다.
문법
DataFrame.asof(where, subset=None)
Input
where: 기준
Return
where를 기준으로 NaN을 제외한 최종 열의 데이터
예제
>>> s = pd.Series([1, 2, np.nan, 4], index=[10, 20, 30, 40])
>>> s
10 1.0
20 2.0
30 NaN
40 4.0
dtype: float64
>>> s.asof(20)
2.0
NaN을 제외한 최종값이 나오므로, 30으로 지정하면 20의 값이 나온다. (30이 NaN)
>>> s.asof(30)
2.0
'파이썬' 카테고리의 다른 글
파이썬의 클래스 (0) | 2022.06.22 |
---|---|
파이썬의 함수 (0) | 2022.06.22 |
시계열데이터에서 데이터 생성 빈도 알아내기 (0) | 2022.06.15 |
nginx 설치, 오라클 클라우드 (5) (0) | 2021.11.29 |
서버 방화벽 개방, 오라클 클라우드 (4) (1) | 2021.11.29 |
Comments