假设我有一个包含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]
Run Code Online (Sandbox Code Playgroud)
这些值显然是numpy.timedelta64,但我需要让它们进入秒.已经有类似的问题与此有关,但我还没有看到与熊猫0.16.1有关的答案.
我试过的是:
ts.apply(lambda x: x.seconds)
Run Code Online (Sandbox Code Playgroud)
这给出了错误
AttributeError:'numpy.timedelta64'对象没有属性'秒'
然后试过
numpy.int64(ts)
Run Code Online (Sandbox Code Playgroud)
但这给了我一个数组.现在我知道我可以将它转换回系列但是在一个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
Run Code Online (Sandbox Code Playgroud)
datetime dtype值有一个dt访问器,您可以在其中访问seconds属性.