【问题标题】:Python: Pandas Series - Difference between consecutive datetime rows in secondsPython:熊猫系列 - 以秒为单位的连续日期时间行之间的差异
【发布时间】:2016-12-16 05:33:27
【问题描述】:

我有一个名为“df”的熊猫系列,如下所示

                       value    
date_time_index         
2015-10-28 01:54:00     1.0 
2015-10-28 01:55:00     1.0 
2015-10-28 01:56:00     1.0 
2015-10-28 01:57:00     1.0 
2015-10-28 01:58:00     1.0 

我只想要一个新列,其连续行之间的差异以秒为单位,我该怎么做?

注意:类型是

 type(df.index[1])

给定

 pandas.tslib.Timestamp

【问题讨论】:

  • 是的,我已经尝试了 1 个小时,但我得到了类似“0 天 00:00:01”的差异。我似乎无法在几秒钟内完成。一定有一些简单的方法可以得到我正在寻找的东西。
  • stackoverflow.com/q/26456825/3765319 使用.diff 减去后,您会得到一个 TimeDelta 列。该答案应该对您有所帮助。
  • @Kartik,是的,只是在您发表评论的同时在下面发布的答案中使用了它,但是谢谢

标签: python datetime pandas difference seconds


【解决方案1】:

我想我已经用

df['temp_index'] = df.index
df['Delta'] = df['temp_index'].diff().astype('timedelta64[m]')

以分钟而不是秒为单位(将 m 更改为 s 以表示秒)

【讨论】:

    【解决方案2】:

    我会这样做:

    df.index.to_series().diff().dt.total_seconds().fillna(0)
    
    date_time_index
    2015-10-28 01:54:00     0.0
    2015-10-28 01:55:00    60.0
    2015-10-28 01:56:00    60.0
    2015-10-28 01:57:00    60.0
    2015-10-28 01:58:00    60.0
    Name: date_time_index, dtype: float64
    

    【讨论】:

    • 这怎么理解使用date_time_index专栏?
    猜你喜欢
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    相关资源
    最近更新 更多