在数据分析中,经常需要计算两个日期或时间戳之间的时间差。 Pandas 是 Python 中流行的数据分析库,为此类计算提供了便捷的方法。但是,当时差超过 24 小时时,结果可能会包含天数。本文介绍如何将此结果转换为仅显示小时和分钟。
考虑以下包含两列(fromdate 和 todate)的示例数据框:
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)
计算两者之间的差异日期,我们可以使用 - 运算符:
df['diff'] = df['fromdate'] - df['todate']
此操作会生成 diff 列,其中包含 datetime.timedelta 对象。但是,这些对象可能包含天作为一个组成部分,如以下输出所示:
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
要将此结果转换为仅小时和分钟,我们可以使用带有 'timedelta64[ 的 astype() 方法h]' 参数:
(df.fr-df.to).astype('timedelta64[h]')
此代码会将时间差转换为小时,产生以下结果输出:
0 58 1 3 2 8 dtype: float64
通过应用此方法,我们可以获得两个日期或时间戳之间以小时和分钟为单位的时间差,无论差值是否超过 24 小时。
以上是如何计算两个 Pandas 列之间的时间差(仅以小时和分钟为单位)?的详细内容。更多信息请关注PHP中文网其他相关文章!