首页 > 解决方案 > 从 hh:mm:ss 和 h:m 更改为分钟数

问题描述

我正在为 ML 模型开发一个健康数据库我有一个 DataFrame,它的对象类型列包含异构数据(1600 行):

46        1:37
47        3:50
48        1:09
49        1:30
50        2:08
51         NaN
52        2:36
53        1:32
54    01:23:00
55        0:59
56        1:40
57    02:10:00
58        2:51
59        1:55
Name: delay, dtype: object 

格式是 hh:mm:ss 或 h:m 我相信我无法将其转换为数字分钟(同时保留缺失值)如果我使用 pd.to_timedelta(df[delay].astype(str), errors='coerce') / pd.Timedelta(1, 'min')我得到 hh:mm 所需的值(分钟数) :ss 行,但我得到带有 h:m 值的 NaN

谢谢!

标签: pandasnantimedelta

解决方案


使用 totalseconds 函数并获取秒数,然后将其除以 60 以获取分钟数:

pd.to_timedelta(df[delay].astype(str), errors='coerce').totalseconds()/60

推荐阅读