【发布时间】:2021-02-06 23:06:20
【问题描述】:
我有一个具有输出的 TimeDelta 对象(比如 T)
Timedelta('0 days 10:30:05.25')
我将它的条目连接到一个变量中
var = str(T._h) + str(':') + str(T._m)
产生所需的输出:'10:30'
但是,当我尝试在 for 循环中运行上述代码并在每次迭代中更改 T 时,var 的输出为 '0:0'。如果我在某个迭代中使用断点在 RHS 上执行 var 的数量,我确实得到了所需的输出。似乎 for 循环不允许将此数量保存到 var 中?我之前已经设置了时间睡眠量,但这没有帮助。
不胜感激。
下面是一个示例示例,其中t_str 在运行结束时将产生“0:0”,而带有断点则会产生正确的答案。
import datetime
import pandas as pd
T = pd.to_timedelta('10.55hours')
for ii in range(0, 3):
T = T + datetime.timedelta(milliseconds=50)
var = str(T._h) + str(':') + str(T._m)
print(var)
【问题讨论】:
-
请提供预期的minimal, reproducible example。显示中间结果与您的预期不同的地方。我们应该能够复制和粘贴您的代码的连续块,执行该文件,并重现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和所需的输出来测试我们的建议。
-
@Prune 在上面用 mwe 编辑过。
-
不完全是:您的代码不会产生任何结果。
-
但是请注意您的示例:如果您在更新后的任何地方
print(T),您将评估未完成的对象,并再次获得预期的输出,而不是错误。很抱歉,我不知道为什么会这样。 -
@Prune 是的,在循环内每次更新
var后,我都没有得到预期的输出。我在 Python 2.7 上得到“0:0”
标签: python pandas string datetime