Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- #비정형#카카오api#api#크롤링
- #K-means #Clustering
- 파이썬
- 숫자빼고 중복되는 코드동작법
- 셀레니움
- 코딩
- 웹매크로 #세잔느
- #비정형 데이터 #네이버 #지도 #크롤링
- 구글 지오코드
- #위도#경도#비정형데이터#크롤링
- 카카오APi
- #크롤링 #웹문서
- 파이썬 셀레니움
- 위도경도
- 웹크롤링
Archives
- Today
- Total
지방이의 Data Science Lab
[Python] Datetime Review 본문
#1. Datetime Review
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
from datetime import datetime
my_year = 2017
my_month = 1
my_day = 2
my_hour = 13
my_minute = 30
my_second = 15
# 2017년 1월 2일
my_date = datetime(my_year,my_month,my_day)
# [1] datetime.datetime(2017, 1, 2, 0, 0)
# 2017년 1월 2일 13:30:15
my_date_time = datetime(my_year,my_month,my_day,my_hour,my_minute,my_second)
# [1] datetime.datetime(2017, 1, 2, 13, 30, 15)
|
- datetime( )으로 불러오면 default는 년, 월, 일, 시, 분 까지 불러온다.
- 따라서, datetime(년, 월, 일)까지만 지정한 경우, 0시 0분으로 output이 나오게 된다.
1
2
3
4
|
my_date.day
#[1] 2
my_date_time.hour
#[1] 13
|
- datetime object만 긁어올 수도 있다.
- .month, .day_name (요일)
#2. NumPy Datetime Arrays
1
2
3
4
5
6
7
8
9
10
11
|
import numpy as np
# 배열 안에 3개의 date을 넣어보자.
np.array(['2016-03-15', '2017-05-24', '2018-08-09'], dtype='datetime64')
# [1] array(['2016-03-15', '2017-05-24', '2018-08-09'], dtype='datetime64[D]')
np.array(['2016-03-15', '2017-05-24', '2018-08-09'], dtype='datetime64[h]')
# [1] array(['2016-03-15T00', '2017-05-24T00', '2018-08-09T00'],
# dtype='datetime64[h]')
np.array(['2016-03-15', '2017-05-24', '2018-08-09'], dtype='datetime64[Y]')
# [1] array(['2016', '2017', '2018'], dtype='datetime64[Y]')
|
- dtype='datetime64'로 설정하면 기본은 년-월-일까지만 뜨는 것.
- Y/D/h가 존재하고 'datetime[Y]'로하면 년만 긁어와진다.
1
2
3
4
5
6
7
|
np.arange('2018-06-01', '2018-06-23', 7, dtype='datetime64[D]')
# [1] array(['2018-06-01', '2018-06-08', '2018-06-15', '2018-06-22'],
# dtype='datetime64[D]')
np.arange('1968', '1976', dtype='datetime64[Y]')
# [1] array(['1968', '1969', '1970', '1971', '1972', '1973', '1974', '1975'],
# dtype='datetime64[Y]')
|
#3. Pandas Datetime Index
1
2
3
4
5
6
|
import pandas as pd
# 2018년 7월 8일 포함 일주일치 가져오기
idx = pd.date_range('7/8/2018', periods=7, freq='D')
#[1] DatetimeIndex(['2018-07-08', '2018-07-09', '2018-07-10', '2018-07-11',
# '2018-07-12', '2018-07-13', '2018-07-14'],
# dtype='datetime64[ns]', freq='D')
|
- '1/1/2018', 'Jan 01, 2018', '01-Jan-2018' 어떤 형태로 코드를 돌려도 같은 아웃풋을 뱉어낸다.
1
2
3
|
idx = pd.to_datetime(['Jan 01, 2018','1/2/18','03-Jan-2018',None])
# [1] DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', 'NaT'], dtype='datetime64[ns]', freq=None)
#
|
- 즉, '1/1/2018', 'Jan 01, 2018', '01-Jan-2018' 중 어떤 형식이던 알아서 읽어낼 수 있다.
- None이면 NaT로 변경된다.
1
2
3
|
some_dates = np.array(['2016-03-15', '2017-05-24', '2018-08-09'], dtype='datetime64[D]')
idx = pd.DatetimeIndex(some_dates)
#[1] DatetimeIndex(['2016-03-15', '2017-05-24', '2018-08-09'], dtype='datetime64[ns]', freq=None)
|
- numpy로 만들어졌더래도 pd.DatetimeIndex( )에 넣어주면 pd로 읽어낼 수 있다.
#4. Pandas Datetime Analysis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
data = np.random.randn(3,2)
cols = ['A','B']
df = pd.DataFrame(data,idx,cols)
df.index
#[1] DatetimeIndex(['2016-03-15', '2017-05-24', '2018-08-09'], dtype='datetime64[ns]', freq=None)
df.index.max()
#[1] Timestamp('2018-08-09 00:00:00')
df.index.argmax()
#[1] 2
df.index.min()
#[1] Timestamp('2016-03-15 00:00:00')
df.index.argmin()
#[1] 0
|
- index.max( ): 가장 최신 날짜가 뭐야?
- index.argmax( ): 가장 최신 날짜의 인덱스가 몇이야?
- index. min( ): 가장 오래된 날짜가 뭐야?
- index. argmin( ): 가장 오래된 날짜의 인덱스가 몇이야?
Comments