【发布时间】:2020-08-20 08:01:01
【问题描述】:
我对 Python 环境还很陌生。我正在尝试使用方法 replace(hour=...,minute=...,second=...) 迭代地修改日期时间对象,并在 pd.Series 中的每次递归时保存结果。目标是为每一行创建一个 pd.Series,其中包含不同的日期时间对象(y、m、d 相同,但 h、mm、ss 不同)
我首先创建了一个 datetime 对象,然后设置了一个 for 循环,在该循环中计算小时、分钟和秒,然后将其分配给已经创建的 datetime 对象。因此,每次迭代的结果将是不同的日期(以 h、m、s 表示)。\
这和我写的差不多:
import datetime as dt
Today = dt.datetime.now()
Dates = pd.Series([])
for i in range(0, 20):
h = # a positive integer 1:24
m = # a positive integer 0:59
s = # a positive integer 0:59
Date = [Today][0] # to avoid Date being referenced to Today
Date.replace(hour=h, minute=m, second=s)
Dates[i] = [Date][0]
我遇到的问题是 Dates 行确实具有相同的日期(具有相同的 h、m、s),但我需要在每个 Dates 行中有不同的日期。我认为这可能是一个参考问题,但我不确定如何处理这个问题(我想“复制方法”将是解决方案,但 datetime 对象没有这样的方法)。
有人有什么建议吗? 谢谢!
【问题讨论】:
-
FWIW,你的
[...][0]基本上什么都不做。您将某些内容放入列表中,然后再次将其取出,这完全可以做到。 -
datetime.replace使用更改后的值返回一个新的datetime实例。它不会修改现有实例…… -
您试图通过避免今天引用日期来实现什么?你能举个例子说明你希望这些日期是什么,你的第一个电话是 .now()?
标签: python python-3.x datetime