微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 将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,但我需要让它们进入秒.
已经有类似的问题与此有关,但我还没有看到与熊猫0.16.1有关的答案.

我试过的是:

ts.apply(lambda x: x.seconds)

这给出了错误

AttributeError: ‘numpy.timedelta64’ object has no attribute ‘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属性.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐