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ではfreqがNoneになる点にも注意してください。これは、正規化によって元の一定間隔の頻度情報が失われるためです。日付ごとのデータ集計やグループ化を行う際に、normalize()は非常に便利なメソッドです。
-
Python Pandas入門:ネストされた辞書をマルチインデックスDataFrameに変換する方法
PythonのPandasライブラリでは、ネストされた辞書(入れ子構造のdict)を簡単にマルチインデックス付きのDataFrameへ変換できます。本記事では、その具体的な手順をサンプルコードとともにわかりやすく解説します。全体の流れ変換の手順は以下の3ステップです。ネストされた辞書を作成する空の辞書を用意し、タプル形式のキーで値を再割り当てするpd.DataFrame()でマルチインデックスDataFrameに変換するステップ1:ネストされた辞書を作成するまず、外側のキー(スポーツ名)と内側のキー(Boards・Country)を持つネストされた辞書を定義します。dictNested = {
-
スプレッドシートをPythonの辞書に変換する方法をわかりやすく解説
スプレッドシート(Excelファイル)のデータをPythonの辞書(dict)に変換する最も簡単な方法は、pandasなどの外部ライブラリを利用することです。pandasには、Excelオブジェクトを扱うための便利な機能が数多く用意されており、その中でもto_dict()メソッドを使えば、読み込んだデータを簡単に辞書形式へ変換できます。 基本的な使い方 まず、pandasのExcelFileクラスを使ってExcelファイルを読み込みます。続いて、parse()メソッドでシートの内容をDataFrameとして取得し、最後にto_dict()で辞書に変換します。 サンプルコード from pand