在 Pandas 中將 Timedelta 轉換為 Int

Muhammad Maisam Abbas 2022年5月16日
在 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

輸出:

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 除以一天的 timedelta 或使用 astype() 屬性提取其整數部分來將 timedelta 轉換為整數。例如,讓我們建立一個 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 轉換為小時或秒或任何其他元件。為此,我們需要將程式碼第三行中的 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