Pandas で Timedelta を Int に変換する

Muhammad Maisam Abbas 2022年1月23日
Pandas で Timedelta を Int に変換する

このチュートリアルでは、Pandas の dt 属性を使用して timedeltaint に変換する方法について説明します。

Pandas の dt 属性を使用して、timedeltaint に変換する

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

出力:

Pandas の時系列

ご覧のとおり、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 に変更する必要があります。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

関連記事 - Pandas DateTime