我正在处理一个包含日期的大型数据集(格式为“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”之类的东西。
感谢所有的帮助;谢谢
1条答案
按热度按时间kx7yvsdv1#
在评论中解决!显然datetime对象在x轴上的图形非常好。