在 Pandas 中将 Timedelta 转换为 Int

Muhammad Maisam Abbas 2024年2月15日
在 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