python pandas datetime.time - datetime.time

Jam*_*ond 7 python datetime pandas

我有一个数据框,其中包含两列datetime.time项.就像是

   col1                 col2
02:10:00.008209    02:08:38.053145
02:10:00.567054    02:08:38.053145
02:10:00.609842    02:08:38.053145
02:10:00.728153    02:08:38.053145
02:10:02.394408    02:08:38.053145
Run Code Online (Sandbox Code Playgroud)

如何生成col3,即col1和col2之间的差异?(优选在几微秒内)?

我四处搜索,但我找不到解决方案.有人知道吗?

谢谢!

unu*_*tbu 2

您确定想要一个datetime.time对象的 DataFrame 吗?几乎没有什么操作可以方便地对这些家伙执行,尤其是当包装在 DataFrame 中时。

让每列存储一个代表微秒总数的 int 可能会更好。

您可以转换df为存储微秒的 DataFrame,如下所示:

In [71]: df2 = df.applymap(lambda x: ((x.hour*60+x.minute)*60+x.second)*10**6+x.microsecond)

In [72]: df2
Out[72]: 
         col1        col2
0  7800008209  7718053145
1  7800567054  7718053145
Run Code Online (Sandbox Code Playgroud)

从那里,很容易得到你想要的结果:

In [73]: df2['col1']-df2['col2']
Out[73]: 
0    81955064
1    82513909
dtype: int64
Run Code Online (Sandbox Code Playgroud)