【Python】日時でスライスする方法

Python

こんにちは、しらすです。

日時でスライスする方法が通常のスライスとは異なるためメモとして残しておきたいと思います。

通常のスライスと日時でスライスの違い

import datetime
import pandas as pd

dtmdata = ['2012-03-04 04:00:07', '2012-03-04 04:00:20',
               '2012-03-04 04:00:39', '2012-03-04 04:01:03',
               '2012-03-04 04:01:28', '2012-03-04 04:01:43',
               '2012-03-04 04:01:57', '2012-03-04 04:02:12',
               '2012-03-04 04:02:24', '2012-03-04 04:02:41',
               '2012-03-04 04:02:57', '2012-03-04 04:03:15',
               '2012-03-04 04:03:28', '2012-03-04 04:03:45',
               '2012-03-04 04:04:02', '2012-03-04 04:04:20',
               '2012-03-04 04:04:39', '2012-03-04 04:04:57',
               '2012-03-04 04:05:20', '2012-03-04 04:05:36',
               '2012-03-04 04:05:55', '2012-03-04 04:06:16',
               '2012-03-04 04:06:32', '2012-03-04 04:06:49',
               '2012-03-04 04:07:08', '2012-03-04 04:07:29',
               '2012-03-04 04:07:50', '2012-03-04 04:08:12',
               '2012-03-04 04:08:33', '2012-03-04 04:08:54',
               '2012-03-04 04:09:22', '2012-03-04 04:09:50',
               '2012-03-04 04:10:20', '2012-03-04 04:10:49',
               '2012-03-04 04:11:20', '2012-03-04 04:11:47',
               '2012-03-04 04:12:23', '2012-03-04 04:12:55',
               '2012-03-04 04:13:31', '2012-03-04 04:14:07',
               '2012-03-04 04:14:48']
dtmdata_pd = pd.to_datetime(dtmdata)

#切り取り日時の指定
st = datetime.datetime(2012, 3, 4, 4, 5, 0)
en = datetime.datetime(2012, 3, 4, 4, 7, 0)

#日時でスライス
date_strip = dtmdata_pd[(dtmdata_pd > st) & (dtmdata_pd < en)]
print(date_strip)

#通常のスライス
simple_strip = dtmdata_pd[18:24]
print(simple_strip)

通常のスライスでは変数のあとに[〇:〇] かっことコロンでスライスします。しかし日時でスライスする場合は[変数>日時 & 変数 < 日時] 日時の大小とアンドでスライスを行います。日時の場合、実際にやっているのは単純なスライスではなく、カッコ内に条件文を記載し、Trueとなるものを抽出する処理を行っています。

コメント