Python:我可以将日期时间转换为粒度小于一整天的 float 吗?

标签 python dataframe datetime seaborn

我正在尝试绘制血压读数,每个读数都有一个日期时间时间戳,其中包含读数的日期和小时:分钟:秒。

由于许多 Seaborn 回归图(lmplot、regplot 等)不支持日期时间时间戳,我只好使用如下数字序数创建一个新的数据框列:

from datetime import date
df['date_ordinal'] = pd.to_datetime(df['date']).apply(lambda date: date.toordinal())

这可行,但问题是同一天获取的多个读数都堆叠在同一个 x 轴点上。

是否有比序数更好的函数来实现将同一天的读数与日序数之后的小数值分开?

最佳答案

您可以计算date列中的每个datetime与最早的datetime之间的timedelta,然后使用timedelta的秒数。这意味着计算自最旧时间戳以来的相对时间(以秒为单位):

df['seconds_since_start'] = df['date'].apply(lambda date: (date - df['date'].min()).seconds)

从这里,您可以使用基本数学将秒转换为天(带十进制值):

df['days_since_start'] = df['seconds_since_start'] / (60 * 60 * 24)

关于Python:我可以将日期时间转换为粒度小于一整天的 float 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68488597/

相关文章:

python - += : 'int' and 'str' on pycharm 不受支持的操作数类型

r - 如何在R中同时合并多个data.frames和sum和average列

java - Spring Mongodb 时间戳时区误导

python - 在实例化期间更改 __getattr__

python - Scrapy解析函数中未定义响应

python - Pandas - 在计算中跳过 NULL 值

python - 从python DataFrame中的lambda函数的多个返回值创建多个列

检索 R 中特定单元格的行名和列名

c# - 如何解析 UTC 日期?

c# - 匹配日期的正则表达式