【发布时间】:2026-01-28 23:50:01
【问题描述】:
我的 pandas 数据框由一个列“timeStamp”组成,其元素的类型为 datetime.datetime。我正在尝试获取此列的两个连续行之间的差异,以获得以秒为单位的时间。我使用以下代码。
df["Time"] = df["timeStamp"].diff(0).dt.total_seconds()
通常它工作正常,但是,即使不是这种情况,在很多情况下我都会因为这个操作而得到 0.0。
导致 0.0 的示例值:
import pandas as pd
import datetime
import numpy as np
df = pd.DataFrame({'S.No.': [1, 2, 3, 4], 'ABC': [datetime.datetime(2019,2,25,11,49,50), datetime.datetime(2019,2,25,11,50,0),datetime.datetime(2019,2,25,11,50,7),datetime.datetime(2019,2,25,11,50,12)]})
df["Time"] = df["ABC"].diff(0).dt.seconds
print df
注意:使用python2.7
【问题讨论】:
-
问题是“diff(0)”,应该是 diff()