将Pandas TimeDelta转换为整数[英] Convert Pandas TimeDelta to integer

本文是小编为大家收集整理的关于将Pandas TimeDelta转换为整数的处理方法,想解了将Pandas TimeDelta转换为整数的问题怎么解决?将Pandas TimeDelta转换为整数问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

假设我有一个包含 TimeDelta 数据的 Pandas 系列.事实上,它是通过将 DateTimeIndex 与其自身的移位版本相比较而生成的,因此给出了连续时间戳之间的增量.

看起来像

timestamp
2015-02-01 00:00:04   00:00:04
2015-02-01 00:00:08   00:00:04
2015-02-01 00:00:12   00:00:04
....
Name: timestamp, dtype: timedelta64[ns]

这些值显然是 numpy.timedelta64 但我需要将它们设置为秒.有人问过与此相关的类似问题,但我还没有看到与 Pandas 0.16.1 相关的答案.

我试过的是:

ts.apply(lambda x: x.seconds)

这给出了一个错误

<块引用>

AttributeError: 'numpy.timedelta64' 对象没有属性 'seconds'

然后尝试

numpy.int64(ts)

但这给了我一个数组.现在我知道我可以将其转换回系列,但没有其他方法可以在一个 Pandas 调用或映射函数中执行此操作吗?

推荐答案

以下对我有用:

In [24]:

t="""index,timestamp
2015-02-01 00:00:04,00:00:04
2015-02-01 00:00:08,00:00:04
2015-02-01 00:00:12,00:00:04"""
s = pd.read_csv(io.StringIO(t),parse_dates=[0,1], squeeze=True, index_col=[0])
In [26]:

s.dt.second
Out[26]:
index
2015-02-01 00:00:04    4
2015-02-01 00:00:08    4
2015-02-01 00:00:12    4
dtype: int64

datetime dtype 值具有 dt访问器,您可以在其中访问 seconds 属性.

本文地址:https://www.itbaoku.cn/post/1727930.html