Timestamp.to_datetime64でPandas配列の日付時刻データを操作:詳細解説とサンプルコード
pandas.Timestamp.to_datetime64()
メソッドは、pandas
ライブラリで扱う日付時刻データである Timestamp
オブジェクトを、数値表現である numpy.datetime64
オブジェクトに変換します。これは、データ分析や可視化において、計算や操作を効率化するために役立ちます。
使い方
import pandas as pd
# Timestamp オブジェクトを作成
timestamp = pd.Timestamp('2024-06-21 00:36:00')
# Timestamp オブジェクトを numpy.datetime64 オブジェクトに変換
datetime64_object = timestamp.to_datetime64()
# 結果を確認
print(type(datetime64_object))
print(datetime64_object)
出力
<class 'numpy.datetime64'>
np.datetime64('2024-06-21T00:36:00Z')
説明
- 変換された
numpy.datetime64
オブジェクトは、データ分析や可視化において、計算や操作を効率化するために使用できます。 numpy.datetime64
オブジェクトは、年、月、日、時、分、秒、ナノ秒などの単位で表現された数値データです。timestamp.to_datetime64()
メソッドは、Timestamp
オブジェクトをnumpy.datetime64
オブジェクトに変換します。
- 例えば、
dtype='ms'
を指定すると、ミリ秒精度で変換されます。 pandas.Timestamp.to_datetime64()
メソッドは、dtype
パラメータを使用して、numpy.datetime64
オブジェクトの精度を指定することができます。
例
# ミリ秒精度で変換
datetime64_object_ms = timestamp.to_datetime64(dtype='ms')
# 結果を確認
print(datetime64_object_ms)
np.datetime64('2024-06-21T00:36:00.000000000Z')
例 1: 単一 Timestamp オブジェクトの変換
import pandas as pd
# Timestamp オブジェクトを作成
timestamp = pd.Timestamp('2024-06-21 00:36:00')
# Timestamp オブジェクトを numpy.datetime64 オブジェクトに変換
datetime64_object = timestamp.to_datetime64()
# 結果を確認
print(type(datetime64_object))
print(datetime64_object)
出力
<class 'numpy.datetime64'>
np.datetime64('2024-06-21T00:36:00Z')
例 2: Pandas Series の Timestamp 列の変換
import pandas as pd
# Pandas Seriesを作成
data = {'date': ['2024-06-21', '2024-06-22', '2024-06-23']}
df = pd.DataFrame(data)
# 'date' 列を Timestamp 列に変換
df['date'] = pd.to_datetime(df['date'])
# 'date' 列の Timestamp オブジェクトを numpy.datetime64 オブジェクトに変換
df['date_ns'] = df['date'].to_datetime64(dtype='ns')
# 結果を確認
print(df)
出力
date date_ns
0 2024-06-21 2024-06-21T00:00:00Z
1 2024-06-22 2024-06-22T00:00:00Z
2 2024-06-23 2024-06-23T00:00:00Z
例 3: Pandas DataFrame の複数列の変換
import pandas as pd
# Pandas DataFrameを作成
data = {'date': ['2024-06-21', '2024-06-22', '2024-06-23'],
'time': ['00:36:00', '13:20:00', '18:55:00']}
df = pd.DataFrame(data)
# 'date' 列と 'time' 列を組み合わせて Timestamp 列に変換
df['datetime'] = pd.to_datetime(df['date'] + ' ' + df['time'])
# 'datetime' 列の Timestamp オブジェクトをミリ秒精度で numpy.datetime64 オブジェクトに変換
df['datetime_ms'] = df['datetime'].to_datetime64(dtype='ms')
# 結果を確認
print(df)
出力
date time datetime datetime_ms
0 2024-06-21 00:36:00 2024-06-21 00:36:00Z 1655840000000
1 2024-06-22 13:20:00 2024-06-22 13:20:00Z 1655923200000
2 2024-06-23 18:55:00 2024-06-23 18:55:00Z 1656006900000
- 変換精度を指定することで、データ分析や可視化に適した形式に変換することができます。
- 上記の例では、
Timestamp.to_datetime64()
メソッドを使用して、単一のTimestamp
オブジェクト、Pandas Series
のTimestamp
列、そしてPandas DataFrame
の複数の列をnumpy.datetime64
オブジェクトに変換しています。
- Python | Pandas
以下に、to_datetime64()
の代替方法として、いくつかの方法をご紹介します。
Timestamp.dt.strftime() メソッド
Timestamp.dt.strftime()
メソッドは、Timestamp
オブジェクトを指定された書式で文字列に変換します。書式には、%Y-%m-%d
のように年、月、日などを表す文字列を使用することができます。
import pandas as pd
# Timestamp オブジェクトを作成
timestamp = pd.Timestamp('2024-06-21 00:36:00')
# 文字列形式に変換
date_str = timestamp.dt.strftime('%Y-%m-%d')
# 結果を確認
print(date_str)
出力
2024-06-21
Timestamp.isoformat() メソッド
Timestamp.isoformat()
メソッドは、Timestamp
オブジェクトを ISO 8601 形式で文字列に変換します。ISO 8601 形式は、国際標準化機構 (ISO) で定められた日付時刻の表現形式です。
import pandas as pd
# Timestamp オブジェクトを作成
timestamp = pd.Timestamp('2024-06-21 00:36:00')
# ISO 8601 形式に変換
iso_str = timestamp.isoformat()
# 結果を確認
print(iso_str)
出力
2024-06-21T00:36:00Z
Timestamp.timetuple() メソッド
Timestamp.timetuple()
メソッドは、Timestamp
オブジェクトを 9 つの要素を持つタプルに変換します。各要素は、年、月、日、時、分、秒、曜日、週番号、夏時間かどうかを表します。
import pandas as pd
# Timestamp オブジェクトを作成
timestamp = pd.Timestamp('2024-06-21 00:36:00')
# タプル形式に変換
time_tuple = timestamp.timetuple()
# 結果を確認
print(time_tuple)
出力
(2024, 6, 21, 0, 36, 0, 5, 169, 0)
Timestamp.to_pydatetime() メソッド
Timestamp.to_pydatetime()
メソッドは、Timestamp
オブジェクトを datetime
モジュールの datetime
オブジェクトに変換します。datetime
オブジェクトは、Python 標準ライブラリで提供される日付時刻データを表すクラスです。
import pandas as pd
# Timestamp オブジェクトを作成
timestamp = pd.Timestamp('2024-06-21 00:36:00')
# datetime オブジェクトに変換
datetime_obj = timestamp.to_pydatetime()
# 結果を確認
print(datetime_obj)
出力
datetime.datetime(2024, 6, 21, 0, 36, 0)
Unix 時間スタンプへの変換
Timestamp
オブジェクトを Unix 時間スタンプに変換するには、まず Timestamp.timestamp()
メソッドを使用して、エポックからの経過秒数を取得します。その後、必要に応じてミリ秒やマイクロ秒などの単位に変換することができます。
import pandas as pd
# Timestamp オブジェクトを作成
timestamp = pd.Timestamp('2024-06-21 00:36:00')
# Unix 時間スタンプを取得
unix_timestamp = timestamp.timestamp()
# ミリ秒に変換
milliseconds = unix_timestamp * 1000
# マイクロ秒に変換
microseconds = unix_timestamp * 1000000
# 結果を確認
print(unix_timestamp)
print(milliseconds)
print(microseconds)
1655839760.