PythonでExcelの日付と時刻を扱う際、Excelの日付と時刻が数値形式で表されることがあります。この記事では、その数値をPythonのdatetimeオブジェクトに変換する方法を紹介します。
Excelの日付と時刻の数値
Excelでは、日付は1900年1月1日を起点として、そこからの日数を加算した数値で日付データを保持しています。例えば、2017年5月29日は42884と表されます。これは、1900年1月1日から42884日経過していることを示しています。
Pythonでの変換方法
Pythonでこの数値を日付形式に変換するには、datetime
とtimedelta
を用いて次のように加算します。
def excel_date(num):
from datetime import datetime, timedelta
return(datetime(1899, 12, 30) + timedelta(days=num))
この関数にExcelの日付数値を入力すると、対応する日付のdatetimeオブジェクトが返されます。例えば、41496を入力すると、2013年8月10日のdatetimeが返されます。
excel_date(41946)
> datetime.datetime(2013, 8, 10, 0, 0)
このように、Pythonを使ってExcelの日付と時刻の数値を簡単に変換することができます。このテクニックは、データ分析や自動化スクリプトなど、様々な場面で役立つでしょう。.