在熊猫中获得微秒变为零

时间:2019-07-07 01:49:27

标签: python pandas

我想使用'diff()'来获取两个连续时间数据的差,以微秒为单位。

但是对于某些数据,当差异为1秒时。我遇到了一些问题,如以下代码所示:

 ~$ conda update conda

结果为0

当我使用

df = pd.DataFrame({'time':['2019-06-10 16:37:16.319', '2019-06-10 16:37:17.319']})
df['time'] = pd.to_datetime(df['time'])
df['delta'] = df['time'].diff().dt.microseconds
print(df)

结果变为1

1 个答案:

答案 0 :(得分:2)

有细微差别。 Timestamp attributes“访问Timedelta或TimedeltaIndex的各个组件”,它们不会转换为该特定频率。属性是定义到下一个单位的,因此Timestamp.dt.microseconds仅定义为> = 0和<1秒的微秒。

在上面的示例中,时间差恰好为1秒,因此没有微秒的分量。

要获取以毫秒为单位的时差,请使用.dt.total_seconds并乘以转换。

df['delta'] = df['time'].diff().dt.total_seconds()*10**6

                     time      delta
0 2019-06-10 16:37:16.319        NaN
1 2019-06-10 16:37:17.319  1000000.0