如何解决Python:尝试在日期时间对象中访问小时,分钟,秒
我对Python环境很陌生。我正在尝试使用方法replace(hour = ...,minute = ...,second = ...)修改datetime对象,并将结果保存在pd.Series的每次递归中。我们的目标是使pd.Series系列的每一行都具有不同的datetime对象(y,m,d相同,但h,mm,ss不同)
我首先创建一个日期时间对象,然后设置for循环,在其中计算小时,分钟和秒,然后将其分配给一个已经创建的日期时间对象。因此,每次迭代的结果将是不同的日期(以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]
我遇到的问题是,日期行确实具有相同的日期(具有相同的h,m,s),但是我需要在每个日期行中具有不同的日期。我认为这可能是一个参考问题,但是我不确定如何解决这个问题(我想“复制方法”将是解决方案,但datetime对象没有这种方法)。
有人有建议吗? 谢谢!
解决方法
如果要在已声明的日期时间对象中访问小时/分钟/秒,请直接通过“。”访问。
即
date = datetime.now()
date.hour
输出:
16
如果要使用特定的时/分/秒创建新的日期时间对象,请使用replace()
,在python中,一般规则是将snake_case
用于变量名,将PascalCase
用于类。
如果我对您的理解正确,那听起来就像您想要timedelta之类的东西。
以下是我认为您追求的完整工作示例:
import pandas as pd
import datetime as dt
today = dt.datetime.now().replace(hour=0,minute=0,second=0)
dates = pd.Series([])
for i in range(0,20):
h = 1 # a positive integer 1:24
m = 1 # a positive integer 0:59
s = 1 # a positive integer 0:59
dates[i] = today + dt.timedelta(hours=h,minutes=m,seconds=s)
print(dates)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。