将Pandas TimeDelta转换为整数

Wil*_*ill 6 python pandas

假设我有一个包含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调用或映射函数中没有其他方法可以做到这一点吗?

EdC*_*ica 5

以下对我有用:

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属性.