【发布时间】:2021-10-22 23:12:45
【问题描述】:
我有很多列包含开始时间和偏移时间。我希望能够从整体设备延迟因子中减去这些列,以获得更正的偏移和起始时间。似乎有一种极端情况,导致答案采用以下格式:-1 天 +23:34:30.300000。
import pandas as pd
import numpy as np
example=[["2","0 days 00:00:57.3","0 days 00:01:12.9","00:00:50.2","pos"],
["13","0 days 00:30:08.5","0 days 00:32:14.0", "00:20:28.0","neg"],
["6","0 days 00:27:18.7","0 days 00:01:24.2","0 days 00:26:48.4","pos"],
["7","0 days 00:01:56.676000","0 days 00:04:56.2","0 days 00:15:33.455000","pos"]]
example_table= pd.DataFrame(example,columns["ID","Start_Time","End_Time","Factor","tag"])
example_table.Factor=example_table.Factor.apply(pd.to_timedelta)
我的包含时间的列的格式为 timedelta64[ns]。
当我执行减法时,有时效果很好,但也有不正确的情况,见 ID 7:
example_table["x"]=(example_table["Start_Time"]-example_table["Factor"])
绝对值也不能解决问题。
example_table["absolute?"]=abs(example_table["Start_Time"]-example_table["Factor"])
如何创建具有正确时差的新列?
ID 2 和 13 的答案似乎是正确的,但 ID 7 的答案应该与显示的不同。
【问题讨论】:
-
isn't
0 days 00:00:30.300000对于 id 6 是正确的 -
@Anurag Dabas 哎呀——我进行了编辑,在提交之前没有彻底检查。是的,6 是正确的,但 7 是错误的。当我有其他列时,取决于我使用的 -1 天显示或不正确的时差显示。
-
0 days 00:27:30.300000也适用于 id 7 -
@Anurag Dabas oof。好的,我一直在错误地看待这个。太感谢了。我在导致此问题的其他区域出错,并且显示难以阅读,所以我在我认为正确的地方犯了错误。
-
是的,你得到了正确的值,因为它是这样显示的,但实际值不同,你可以通过
example_table.loc[3,'Factor']和example_table.loc[3,'Start_Time']进行检查
标签: python pandas time timedelta seconds