LoginSignup
1
2

More than 3 years have passed since last update.

初心者のためのpandas基礎④日付・時間項目の取り扱い

Last updated at Posted at 2020-07-13

pandasとは

Pythonにて、構造化データ(テーブル型のデータ)を扱うためのライブラリです。ファイルの読み込みやその後の加工・抽出処理などを簡単に行うことができ(SQL的な感覚で行うことができ)、機械学習などのデータの前処理で必須となるライブラリです。
他項目への目次はこちらになります。

0.ライブラリインポート

pandasにpdという名前をつけてimportする

import pandas as pd

1. 日付・時間項目変換

Object型で記載された項目をdatetime64[ns]型(Timestamp型)に変換します。
dataframeという定義の「Day」という項目を変換すると仮定します。

dataframe['Day'] = pd.to_datetime(dataframe['Day'])

2.範囲指定

「Day」が「2020年4月1日」以降のデータを抽出します。

dataframe = dataframe.loc[dataframe['Day'] > pd.to_datetime('20200401')]

3.オブジェクト型として抽出

datetime64[ns]型であるDayを日付(オブジェクト型)に変換します。

dataframe['Day'] = dataframe['Day'].dt.date

同様のやり方で、年(year)、月(month)、日(day)、曜日(weekday or weekday_name or dayofweek)などのオブジェクト化が可能です。「date」の部分を置き換えてください。

応用として、「Day」が月曜日のみを抽出すると下記のようになります。

dataframe[dataframe['Day'].dt.dayofweek == 0]

4.フォーマットを指定してオブジェクト型として抽出

「Day」をY年m月d日に変更します。

dataframe['Day'] = dataframe['Day'].dt.date.strftime('%Y年%m月%d日'))

5.値を丸める

Timestamp型だと、秒まで含まれてしまっているため、日付に丸めます。

dataframe['Day'] = dataframe['Day'].dt.round("D")

切り捨て(floor)切り上げ(ceil)の場合は「round」を()内の構文で置き換えてください。
時間でまるめる場合は"H"、15分毎は"15T"です。
公式のドキュメントはこちらを確認ください。

(応用)日付の差分

四則演算により日付の差分を取得することができます。

dataframe['Day_delta'] = dataframe['Day1'] - dataframe['Day2']

この際の「Day_delta」は、「timedelta型」となります。
日付で丸める時は「day」ではなく、「days」なのでご注意下さい。

dataframe['Day_delta'] = dataframe['Day_delta'].dt.days

最後に

初心者にもわかるように、Pythonで機械学習を実施する際の必要な知識を簡便に記事としてまとめております。
目次はこちらになりますので、他の記事も参考にして頂けると幸いです。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2