-1

我想将格式 hh:mm 的时间转换为一天的小数部分。我有数据框,其中有持续时间列

Duration
0:56
0:54
2:57

我想将此列转换为一天的分数

4

1 回答 1

3

如果我理解正确的话。我们可以将持续时间拆分为小时和分钟,然后将分钟转换为小时的分数,最后通过将两者相加来检查一天的分数:

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
于 2020-11-21T12:30:08.853 回答