在 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
除以一天的 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
更改为秒,依此类推。
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