如何在 python 中将白天转换为白天?

How to convert daytime to day in python?

我有以下 table :

DayTime
1 days 19:55:00
134 days 15:34:00

如何将白天转换为全天?这意味着时间将变为天(除以 24)

您可以通过除以 Timedelta 单位将 Timedeltas 转换为数字时间单位。例如,

import pandas as pd
df = pd.DataFrame({'DayTime':['1 days 19:55:00', '134 days 15:34:00']})
df['DayTime'] = pd.to_timedelta(df['DayTime'])
days = df['DayTime'] / pd.Timedelta(hours=24) 
print(days)

产量

0      1.829861
1    134.648611
Name: DayTime, dtype: float64

请注意,上面我假设 1 天 = 24 小时。这并不总是完全正确的。有些日子是 24 小时 + 1 leap second 长。

不使用pandas并且在python2.7中(python3个timedeltas可以直接划分):

import re
from datetime import timedelta

def full_days(day_time):
    d, h, m, s = map(int, re.split('\D+', day_time))
    delta = timedelta(hours=h, minutes=m, seconds=s)
    return d + delta.total_seconds() / timedelta(days=1).total_seconds()

print full_days('1 days 19:55:00')
print full_days('0 days 43:55:00')
print full_days('134 days 15:34:00')

输出:

1.82986111111
1.82986111111
134.648611111