我想将格式 hh:mm 的时间转换为一天的小数部分。我有数据框,其中有持续时间列
Duration
0:56
0:54
2:57
我想将此列转换为一天的分数
如果我理解正确的话。我们可以将持续时间拆分为小时和分钟,然后将分钟转换为小时的分数,最后通过将两者相加来检查一天的分数:
split = df['Duration'].str.split(':')
h = split.str[0].astype(int)
m = split.str[1].astype(int)
df['fraction_24_hrs'] = (h + m / 60) / 24
Duration fraction_24_hrs
0 0:56 0.038889
1 0:54 0.037500
2 2:57 0.122917
选项 2是使用 pandas timedelta 功能:
dates = pd.to_datetime(df['Duration'], format='%H:%M')
df['fraction_24_hrs'] = (dates - dates.dt.floor('D')) / pd.Timedelta(24, 'H')
Duration fraction_24_hrs
0 0:56 0.038889
1 0:54 0.037500
2 2:57 0.122917