当前位置: 首页 > 知识库问答 >
问题:

如何将两行时间不同值的分钟转换为小时

韶亮
2023-03-14

这里有dataset和DateTime。在这里,我想在我的csv文件中逐行获得不同的时间值。

所以我写了代码,以分钟为单位得到时间不同的值。然后我想换算时间以小时为单位。

那意味着;

但当我尝试它时,它与我所需的格式不匹配。我只是把时差除以60。

我的代码:

df1['time_diff'] = pd.to_datetime(df1["time"])

打印(DF1['time_diff'])

0     2019-08-09 06:15:00
1     2019-08-09 06:45:00
2     2019-08-09 07:45:00
3     2019-08-09 09:00:00
4     2019-08-09 09:25:00
5     2019-08-09 09:30:00
6     2019-08-09 11:00:00
7     2019-08-09 11:30:00
8     2019-08-09 13:30:00
9     2019-08-09 13:50:00
10    2019-08-09 15:00:00
11    2019-08-09 15:25:00
12    2019-08-09 16:25:00
13    2019-08-09 18:00:00
df1['delta'] = (df1['time_diff']-df1['time_diff'].shift()).fillna(0)
df1['t'] = df1['delta'].apply(lambda x: x  / np.timedelta64(1,'m')).astype('int64')% (24*60)

然后结果:

除以60后:

df1['t'] = df1['delta'].apply(lambda x: x  / np.timedelta64(1,'m')).astype('int64')% (24*60)/60

结果:

但必须将30分钟转换为0.5小时。

预期产出:

[![

time_diff in min expected output of time_diff in hour
             0               0
             30             0.5
             60              1
             75           1.25
             25           0.4167
             5            0.083
             90             1.5
             30             0.5
             120             2
             20           0.333
             70           1.33
             25           0.4167
             60              1
             95           1.583

有人能帮我解决这个错误吗?

共有1个答案

乐成济
2023-03-14

我建议使用series.dt.total_seconds,除603600:

df1['datetimes'] = pd.to_datetime(df1['date']+ ' ' + df1['time'], dayfirst=True)

df1['delta'] = df1['datetimes'].diff().fillna(pd.Timedelta(0))

td = df1['delta'].dt.total_seconds()
df1['time_diff in min'] = td.div(60).astype(int)
df1['time_diff in hour'] = td.div(3600)
print (df1)
             datetimes    delta  time_diff in min  time_diff in hour
0  2019-08-09 06:15:00 00:00:00                 0           0.000000
1  2019-08-09 06:45:00 00:30:00                30           0.500000
2  2019-08-09 07:45:00 01:00:00                60           1.000000
3  2019-08-09 09:00:00 01:15:00                75           1.250000
4  2019-08-09 09:25:00 00:25:00                25           0.416667
5  2019-08-09 09:30:00 00:05:00                 5           0.083333
6  2019-08-09 11:00:00 01:30:00                90           1.500000
7  2019-08-09 11:30:00 00:30:00                30           0.500000
8  2019-08-09 13:30:00 02:00:00               120           2.000000
9  2019-08-09 13:50:00 00:20:00                20           0.333333
10 2019-08-09 15:00:00 01:10:00                70           1.166667
11 2019-08-09 15:25:00 00:25:00                25           0.416667
12 2019-08-09 16:25:00 01:00:00                60           1.000000
13 2019-08-09 18:00:00 01:35:00                95           1.583333
 类似资料:
  • 问题内容: 我一直在尝试将秒值(在BigDecimal变量中)转换为editText之类的字符串,例如“ 1小时22分33秒”或类似的内容。 我已经试过了: (我有一个roundThreeCalc值,以秒为单位,所以我尝试在这里进行转换。) 然后,将editText设置为sequnceCaptureTime String。但这没有用。每次都强制关闭该应用程序。我完全不在这里,我们将不胜感激。祝您编

  • 问题内容: 我需要在Java中将分钟转换为小时和分钟。例如260应该是4:20。任何人都可以帮助我如何进行转换。 问题答案: 如果您的时间在一个名为 再简单不过了

  • 问题内容: 我需要将秒转换为“小时:分钟:秒”。 例如:“ 685”转换为“ 00:11:25” 我该如何实现? 问题答案: 您可以使用以下功能:

  • 问题内容: 我有一个以秒为单位返回信息的函数,但我需要以小时:分钟:秒存储该信息。 有没有简单的方法可以在Python中将秒转换为这种格式? 问题答案: 你可以使用功能:

  • 因此,我试图制作一个程序,可以将s从输入转换为h、m和s。到目前为止,我的代码如下所示: 好的,所以我必须将s,m,h初始化为0,因为如果不是的话,我在if语句中遇到了问题,所以我把它设置为0,因为我可以稍后更改:)好的。所以现在这个程序的问题是,如果我输入3603,我会得到这个输出:3603s=1H60M3603s,如果我输入3600,我会得到:3600s=1H60M3600s,但输出应该分别是

  • 问题内容: 我有一个称为分钟的变量,例如250分钟。 如何使用以下格式的PHP将分钟数转换为小时数和分钟数: 问题答案: