Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Pandas – DateTimeIndexの時刻を深夜(00:00:00)に変換するnormalize()メソッドの使い方

PandasでDateTimeIndexの時刻を深夜(00:00:00)に変換したい場合は、DateTimeIndex.normalize()メソッドを使用します。このメソッドは、日付の時刻部分を切り捨てて真夜中に正規化し、タイムゾーン情報はそのまま保持します。

必要なライブラリのインポート

まず、必要なライブラリをインポートします。

import pandas as pd

DatetimeIndexの作成

次に、開始時刻を「2021-10-30 02:30:50」、期間を7、頻度を10時間(10H)、タイムゾーンを「Australia/Adelaide」としてDatetimeIndexを作成します。

datetimeindex = pd.date_range('2021-10-30 02:30:50', periods=7, tz='Australia/Adelaide', freq='10H')

DateTimeIndexの表示

作成したDateTimeIndexを表示してみましょう。

print("DateTimeIndex...\n", datetimeindex)

時刻を深夜に変換する

normalize()メソッドを呼び出すと、日時の時刻成分が深夜(00:00:00)に変換されます。

print("\nNormalize (converted the time component to midnight)...\n",
datetimeindex.normalize())

完全なコード例

以下が実行コード全体です。

import pandas as pd

# 期間7、頻度10時間のDatetimeIndexを作成
# タイムゾーンはAustralia/Adelaideを指定
datetimeindex = pd.date_range('2021-10-30 02:30:50', periods=7, tz='Australia/Adelaide', freq='10H')

# DateTimeIndexを表示
print("DateTimeIndex...\n", datetimeindex)

# DateTimeIndexの頻度を表示
print("\nDateTimeIndex frequency...\n", datetimeindex.freq)

# 時刻成分を深夜(00:00:00)に変換
print("\nNormalize (converted the time component to midnight)...\n",
datetimeindex.normalize())

出力結果

上記のコードを実行すると、次のような出力が得られます。

DateTimeIndex...
DatetimeIndex(['2021-10-30 02:30:50+10:30', '2021-10-30 12:30:50+10:30',
'2021-10-30 22:30:50+10:30', '2021-10-31 08:30:50+10:30',
'2021-10-31 18:30:50+10:30', '2021-11-01 04:30:50+10:30',
'2021-11-01 14:30:50+10:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq='10H')
DateTimeIndex frequency...
<10 * Hours>

Normalize (converted the time component to midnight)...
DatetimeIndex(['2021-10-30 00:00:00+10:30', '2021-10-30 00:00:00+10:30',
'2021-10-30 00:00:00+10:30', '2021-10-31 00:00:00+10:30',
'2021-10-31 00:00:00+10:30', '2021-11-01 00:00:00+10:30',
'2021-11-01 00:00:00+10:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq=None)

ポイント解説

出力結果から分かるように、normalize()を使用すると同じ日に属する複数の日時がすべて「00:00:00」に統一されます。また、正規化後のDatetimeIndexではfreqNoneになる点にも注意してください。これは、正規化によって元の一定間隔の頻度情報が失われるためです。日付ごとのデータ集計やグループ化を行う際に、normalize()は非常に便利なメソッドです。

  1. Python Pandas入門:ネストされた辞書をマルチインデックスDataFrameに変換する方法

    PythonのPandasライブラリでは、ネストされた辞書(入れ子構造のdict)を簡単にマルチインデックス付きのDataFrameへ変換できます。本記事では、その具体的な手順をサンプルコードとともにわかりやすく解説します。全体の流れ変換の手順は以下の3ステップです。ネストされた辞書を作成する空の辞書を用意し、タプル形式のキーで値を再割り当てするpd.DataFrame()でマルチインデックスDataFrameに変換するステップ1:ネストされた辞書を作成するまず、外側のキー(スポーツ名)と内側のキー(Boards・Country)を持つネストされた辞書を定義します。dictNested = {

  2. スプレッドシートをPythonの辞書に変換する方法をわかりやすく解説

    スプレッドシート(Excelファイル)のデータをPythonの辞書(dict)に変換する最も簡単な方法は、pandasなどの外部ライブラリを利用することです。pandasには、Excelオブジェクトを扱うための便利な機能が数多く用意されており、その中でもto_dict()メソッドを使えば、読み込んだデータを簡単に辞書形式へ変換できます。 基本的な使い方 まず、pandasのExcelFileクラスを使ってExcelファイルを読み込みます。続いて、parse()メソッドでシートの内容をDataFrameとして取得し、最後にto_dict()で辞書に変換します。 サンプルコード from pand