首页 > 后端开发 > Python教程 > 如何有效计算两个 Pandas DataFrame 列之间的小时和分钟时间差?

如何有效计算两个 Pandas DataFrame 列之间的小时和分钟时间差?

DDD
发布: 2024-12-01 07:37:10
原创
564 人浏览过

How Can I Efficiently Calculate the Time Difference in Hours and Minutes Between Two Pandas DataFrame Columns?

计算两个 Pandas 列之间的时间差(以小时和分钟为单位)

确定 DataFrame 中两个日期列之间的时间差对于各种应用程序。但是,使用减法运算符的标准方法会生成包含天数的 datetime.timedelta 对象。要将其转换为小时和分钟,我们可以利用 as_type 方法。

假设我们的 DataFrame 中有两列,fromdatetodate,分别代表开始时间和结束时间。使用减法运算符,我们得到的时间差如下:

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']
登录后复制

这给我们提供了以下输出,其中包括天数:

                    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
登录后复制

将时差转换为仅小时和分钟,我们可以使用 as_type 方法将 datetime.timedelta 对象转换为timedelta64 具有特定测量单位的对象:

df['diff_hours'] = df['diff'].astype('timedelta64[h]')
登录后复制

这为我们提供了输出:

                    todate                 fromdate                  diff  diff_hours
0 2014-01-24 13:03:12.050  2014-01-26 23:41:21.870  2 days 10:38:09.820  58
1 2014-01-27 11:57:18.240  2014-01-27 15:38:22.540  0 days 03:41:04.300   3
2 2014-01-23 10:07:47.660  2014-01-23 18:50:41.420  0 days 08:42:53.760   8
登录后复制

如您所见,diff_hours 列现在包含两个日期之间的时差(以小时为单位)。

以上是如何有效计算两个 Pandas DataFrame 列之间的小时和分钟时间差?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板