Pandas で Timedelta を Int に変換する
このチュートリアルでは、Pandas の dt
属性を使用して timedelta
を int
に変換する方法について説明します。
Pandas の dt
属性を使用して、timedelta
を int
に変換する
timedelta
を整数値に変換するには、pandas
ライブラリの dt
属性を使用できます。dt
属性を使用すると、timedelta
のコンポーネントを抽出できます。たとえば、dt
属性を使用して、年、月、日、分、または秒を抽出できます。そのためには、dt
属性の後にコンポーネントの名前を書き込む必要があります。timedelta
変数のすべてのコンポーネントを表示するには、components
属性を使用できます。たとえば、Pandas の Series
属性を使用して時系列を作成し、components
属性を使用してそのコンポーネントを表示してみましょう。
import pandas as pd
time_series = pd.Series(pd.timedelta_range(start="1 days", end="10 days", freq="1500T"))
time_series.dt.components
出力:
ご覧のとおり、components
属性は時系列のすべてのコンポーネントを示しています。timedelta_range()
属性は、時系列を作成するために上記のコードで使用されます。timedelta_range()
属性内で、開始点と終了点、および時刻が変化する頻度を定義できます。そのコンポーネントの名前を使用して、これらのコンポーネントのいずれかを抽出できます。たとえば、上記の時系列から日数コンポーネントを抽出してみましょう。以下のコードを参照してください。
import pandas as pd
time_series = pd.Series(pd.timedelta_range(start="1 days", end="10 days", freq="1500T"))
time_series.dt.days
出力:
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
dtype: int64
上記の時系列から必要なコンポーネントを抽出できます。timedelta
を 1 日の timedelta
で除算するか、astype()
属性を使用してその整数部分を抽出することにより、整数に変換することもできます。たとえば、timedelta
オブジェクトを作成し、それを整数に変換して、NumPy
を使用してその日の値を取得しましょう。以下のコードを参照してください。
import numpy as np
x = np.timedelta64(2058311000000000, "ns")
day = x.astype("timedelta64[D]")
days.astype(int)
出力:
23.0
timedelta
は実際には int64
データ型であり、astype()
属性を使用して int
に変換することにより、目的のコンポーネントを抽出できます。同じ方法を使用して、timedelta
を時間や秒、またはその他のコンポーネントに変換することもできます。これを行うには、コードの 3 行目の D
を時間は h
に、秒は s
に変更する必要があります。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn