如何将日期字符串转换为浮点数来表示x轴?

vlf7wbxs  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(220)

我正在处理一个包含日期的大型数据集(格式为“mm/dd/yyyy”),我正在尝试绘制与该日期相关的特定度量。现在,由于日期需要在x轴上,我知道我需要将它们转换为浮动。我目前有两种方法:
使用字符串解析获取月/年/日期,将其转换为浮点数,并将它们添加到一起,如下所示:

def get_date_float(date_str):
    # date_str = something like "01/13/2021"
    m, d, y = float(date_str[:2]), float(date_str[3:5]), float(date_str[6:])
    return y + (m / 12) + (0.01 * d / num_days_in_month(int(m)))

注: num_days_in_month 使用 monthrange 功能来自 calendar 模块。但是,这导致日期的浮动不太准确。例如,日期“12/15/2020”变为浮动“2021.004839”,这显然是错误的。我不确定为什么会发生这种情况——我尝试了上面对m/d/y变量的不同操作,但总是有一定程度的错误。
读完这个答案后,我试着使用 datetime 模块将字符串转换为浮点数,如下所示:

def date_str_to_datetime_to_float(date_str):
    # date_str = "12/15/2020"
    datetime_obj = datetime.strptime(date_str, "%m/%d/%Y")
    print(datetime_obj.timestamp())

但是,时间戳是一个非常大的数字(#自某个开始时间起的毫秒数?)。例如,日期“12/15/2020”成为时间戳“16080119200.0”。但是,我想要“2020.921”之类的东西。
感谢所有的帮助;谢谢

kx7yvsdv

kx7yvsdv1#

在评论中解决!显然datetime对象在x轴上的图形非常好。

相关问题