Python で日時を日付に変換する
Python には、日付と時刻を格納するための特定の組み込みデータ型は含まれていません。ただし、Python コードの日付と時刻を変更および操作するクラスをユーザーに提供する datetime
モジュールを提供します。
このチュートリアルでは、Python で DateTime を日付に変換するために利用できるさまざまな方法を学習します。
このプロセスを実装するさまざまな方法をリストする前に、datetime
オブジェクトと date
オブジェクトの違いを理解しましょう。
datetime
オブジェクトは、時刻と日付を返すことができます。通常、マイクロ秒、秒、分、時、日、月、年の値など、さまざまな値が含まれています。一方、タイプ date
のオブジェクトには日付のみが含まれます。
Python で datetime.date()
関数を使用して日時を日付に変換する
datetime()
コンストラクターを使用して、日付を生成できます。
datetime()
コンストラクターには、日、月、年の 3つのパラメーターがあります。
これらの 3つのパラメーターは、コンストラクターで日付を生成するために必要です。
プログラマーは、date
タイプのオブジェクトを返す date()
関数を使用するだけです。
次のコードは、date()
関数を使用して、Python で DateTime を日付に変換します。
import datetime
print(datetime.datetime.now())
print(datetime.datetime.now().date())
出力:
2021-10-17 21:27:46.018327
2021-10-17
説明
datetime
モジュールが Python コードにインポートされます- 現在の日付と時刻は、
datetime.datetime.now()
関数によってdatetime
オブジェクトとして提供されます。 - タイプ
date
のオブジェクトとしての現在の日付は、date()
関数とdatetime.datetime.now()
関数の助けを借りて提供されます。
datetime.date.today()
関数は、現在の日付を直接検索する必要がある場合に使用できます。ただし、現在の日付以外のものが必要な場合、この代替手段は機能しません。
次のコードは、datetime.date.today()
関数を使用しています。
import datetime
print(datetime.datetime.now())
print(datetime.date.today())
出力:
2021-10-17 21:27:46.018327
2021-10-17
この特定のケースでは、両方の方法で、現在の日付で作業しているのと同じ出力が提供されます。
Python で Pandas を使用して DateTime を Date に変換する
Pandas DataFrame
を利用して、時刻と日付の値に対応する配列を生成できます。
pandas DataFrame
を使用して time
列を含む配列を生成するには、pandas
モジュールをインポートする必要があります。
次のコードは、Pandas DataFrame
を使用して、Python で DateTime を日付に変換します。
import pandas as pd
dataf = pd.DataFrame(
{"EMP": [3, 6], "time": ["2021-10-15 16:05:00", "2021-10-17 20:00:30"]}
)
print(dataf)
dataf["time"] = pd.to_datetime(dataf["time"]).dt.date
print(dataf)
出力:
EMP time
0 3 2021-10-15 16:05:00
1 6 2021-10-17 20:00:30
EMP time
0 3 2021-10-15
1 6 2021-10-17
上記のコードでは、dt.date
関数の実行後、時刻列に時刻と日付のみが表示されていることがはっきりとわかります。
説明
- まず、Pandas
DataFrame
を作成し、DateTime 値を列に追加します。 - 次に、
dt.date()
関数を使用して、DateTime 値を日付値に変換します。 print
コマンドは、出力に日付値と DateTime 値の両方を表示するために使用されます。
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn