Python Pandas:datetime.dateオブジェクトのNumPy配列を返す方法
Pythonのdatetime.dateオブジェクトからなるNumPy配列を取得するには、PandasのDatetimeIndex.dateプロパティを使用します。このプロパティを使うと、タイムスタンプから日付部分だけを抽出し、NumPy配列として簡単に取得できます。
必要なライブラリのインポート
まず、必要なライブラリをインポートしましょう。
import pandas as pd
DatetimeIndexの作成
次に、期間3、頻度ns(ナノ秒)でDatetimeIndexを作成します。タイムゾーンは「Australia/Sydney」を指定しています。
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=3, tz='Australia/Sydney', freq='ns')DatetimeIndexの表示
作成したDateTimeIndexを表示して確認します。
print("DateTimeIndex...\n", datetimeindex)日付部分のみを抽出
.dateプロパティを使用すると、タイムゾーン情報を除いたタイムスタンプの日付部分のみが返されます。
print("\nThe numpy array (date part)..\n", datetimeindex.date)完全なコード例
以下に、ここまでの手順をまとめた完全なコードを示します。
import pandas as pd
# 期間3、頻度ns(ナノ秒)でDatetimeIndexを作成
# タイムゾーンはAustralia/Sydneyを指定
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=3, tz='Australia/Sydney', freq='ns')
# DateTimeIndexを表示
print("DateTimeIndex...\n", datetimeindex)
# タイムゾーン情報なしで、日付部分のみのNumPy配列を返す
print("\nThe numpy array (date part)..\n", datetimeindex.date)実行結果
上記のコードを実行すると、以下のような出力が得られます。
DateTimeIndex... DatetimeIndex([ '2021-10-20 02:30:50+11:00', '2021-10-20 02:30:50.000000001+11:00', '2021-10-20 02:30:50.000000002+11:00'], dtype='datetime64[ns, Australia/Sydney]', freq='N') The numpy array (date part).. [datetime.date(2021, 10, 20) datetime.date(2021, 10, 20) datetime.date(2021, 10, 20)]
ポイント解説
出力結果を見ると、元のDatetimeIndexにはナノ秒単位の時刻情報とタイムゾーン(+11:00)が含まれていますが、.dateプロパティを適用した結果、すべての要素がdatetime.date(2021, 10, 20)という純粋な日付オブジェクトに変換されていることがわかります。時刻やタイムゾーンの情報が不要な日付ベースのデータ分析を行う際に、このプロパティは非常に便利です。
-
Pythonで日付と時刻を比較する方法|datetimeモジュールの基本
日付や時刻の比較は、あらゆるプログラミング言語において非常に重要な処理の一つです。Pythonにはdatetimeライブラリが標準で用意されており、日付や時刻を扱うための便利な組み込み関数が多数提供されています。さらに、日付や時刻のオブジェクトは数値と同じように比較演算子を使って直感的に比較できる点も大きな魅力です。 比較に使える演算子 Pythonの日付・日時オブジェクトでは、以下の比較演算子がそのまま利用できます。 > :大きい(より未来の日付) < :小さい(より過去の日付) == :等しい >=、<=、!= も同様に使用可能 サンプルコード 以下の例では、d
-
Pythonで日付(date)を日時(datetime)に変換する方法
Pythonでは、datetimeモジュールのcombine()メソッドを使うことで、日付(date)と時刻(time)を組み合わせて、新しいdatetimeオブジェクトを作成できます。timeオブジェクトが手元にない場合は、datetime.min.time()を使って最小の時刻(つまり深夜0時=真夜中)を表すtimeオブjectを取得できます。方法1:datetime.combine() を使う以下の例では、今日の日付と最小の時刻(0時0分0秒)を組み合わせて、datetimeオブジェクトを生成しています。from datetime import date from datetime im