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