假设我有一个包含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] 举报,一经查实,本站将立刻删除。