for循环中的timedelta对象问题(python)
我有一个TimeDelta对象(比如for循环中的timedelta对象问题(python),python,pandas,string,datetime,Python,Pandas,String,Datetime,我有一个TimeDelta对象(比如T),它有输出 Timedelta('0 days 10:30:05.25') 我将它的条目连接到一个变量中 var = str(T._h) + str(':') + str(T._m) 产生所需输出的:'10:30' 但是,当我尝试在for循环中运行上述内容时,每次迭代都会更改T,var的输出是'0:0'。如果我在某个迭代中使用断点执行var的RHS上的数量,我确实会得到所需的输出。似乎for循环不允许将此数量保存到var?我之前已经设定了一个时间睡眠量
T
),它有输出
Timedelta('0 days 10:30:05.25')
我将它的条目连接到一个变量中
var = str(T._h) + str(':') + str(T._m)
产生所需输出的:'10:30'
但是,当我尝试在for循环中运行上述内容时,每次迭代都会更改T
,var的输出是'0:0'
。如果我在某个迭代中使用断点执行var
的RHS上的数量,我确实会得到所需的输出。似乎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)
这将解决您的问题,并将产生所需的输出
import datetime
import pandas as pd
T = pd.to_timedelta('10.55hours')
for ii in range(0, 3):
T = T + datetime.timedelta(milliseconds=50)
print(T)
var = "%d:%d:%d.%d" % (T._h, T._m, T._s, T._ms)
print(var)
# output : 10:33:0.150
请提供预期的价格。显示中间结果与您预期的不同之处。我们应该能够复制和粘贴一个连续的代码块,执行该文件,并再现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和所需的输出来测试我们的建议。@Prune使用mwe在上面进行了编辑。不完全是:您的代码不会产生任何结果。但是,请注意您的示例:如果您
print(T)
在更新后的任何地方,您都会评估未完成的对象,并再次获得预期的输出,而不是bug。很抱歉,我不知道为什么会发生这种情况。@Prune是的,在循环中的var
上每次更新后,我都没有得到预期的输出。我在Python2.7上得到了“0:0”谢谢-您能告诉我如何将秒和毫秒包含在内吗?e、 例如,如果Timedelta看起来像10:33:30.2500
谢谢,但这对我不起作用。。。我得到了0:0:0.0
:(