以小时和分钟为单位计算两个 Pandas 列之间的时间差 [英] Calculate Time Difference Between Two Pandas Columns in Hours and Minutes
本文介绍了以小时和分钟为单位计算两个 Pandas 列之间的时间差的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在一个数据框中有两列,fromdate
和 todate
.
I have two columns, fromdate
and todate
, in a dataframe.
import pandas as pd
data = {'todate': [pd.Timestamp('2014-01-24 13:03:12.050000'), pd.Timestamp('2014-01-27 11:57:18.240000'), pd.Timestamp('2014-01-23 10:07:47.660000')],
'fromdate': [pd.Timestamp('2014-01-26 23:41:21.870000'), pd.Timestamp('2014-01-27 15:38:22.540000'), pd.Timestamp('2014-01-23 18:50:41.420000')]}
df = pd.DataFrame(data)
我添加了一个新列 diff
,以使用
I add a new column, diff
, to find the difference between the two dates using
df['diff'] = df['fromdate'] - df['todate']
我得到了 diff
列,但它包含 days
,当超过 24 小时时.
I get the diff
column, but it contains days
, when there's more than 24 hours.
todate fromdate diff
0 2014-01-24 13:03:12.050 2014-01-26 23:41:21.870 2 days 10:38:09.820000
1 2014-01-27 11:57:18.240 2014-01-27 15:38:22.540 0 days 03:41:04.300000
2 2014-01-23 10:07:47.660 2014-01-23 18:50:41.420 0 days 08:42:53.760000
如何将结果仅转换为小时和分钟(即天数转换为小时数)?
How do I convert my results to only hours and minutes (i.e. days are converted to hours)?
推荐答案
Pandas 时间戳差异返回一个 datetime.timedelta 对象.这可以通过使用 *as_type* 方法轻松转换为小时,就像这样
Pandas timestamp differences returns a datetime.timedelta object. This can easily be converted into hours by using the *as_type* method, like so
import pandas
df = pandas.DataFrame(columns=['to','fr','ans'])
df.to = [pandas.Timestamp('2014-01-24 13:03:12.050000'), pandas.Timestamp('2014-01-27 11:57:18.240000'), pandas.Timestamp('2014-01-23 10:07:47.660000')]
df.fr = [pandas.Timestamp('2014-01-26 23:41:21.870000'), pandas.Timestamp('2014-01-27 15:38:22.540000'), pandas.Timestamp('2014-01-23 18:50:41.420000')]
(df.fr-df.to).astype('timedelta64[h]')
屈服,
0 58
1 3
2 8
dtype: float64
这篇关于以小时和分钟为单位计算两个 Pandas 列之间的时间差的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文