首页 > 解决方案 > 如何计算以天和小时为单位的经过时间

问题描述

大家好,我有两列日期时间格式,我想创建一个新列,其中包含以天为单位的经过时间,第二列包含以小时为单位的其余时间。请看例子:

我的数据:

# importing pandas as pd 
import pandas as pd 

# creating a dataframe 
df = pd.DataFrame({'DATE_IDENTIFIED': ['2019-06-27 10:42:50 ', '2019-06-28 13:11:58', '2019-06-20 13:12:23','2019-06-26 11:14:59','2019-06-26 11:16:04'], 
   'DATE_CLOSED': ['2019-09-27 10:40:38', '2019-06-28 19:11:22', 
   '2019-06-28 18:11:22','2019-06-26 13:13:38','2019-06-28 14:15:37']}) 


DATE_IDENTIFIED                   DATE_CLOSED
0   2019-06-27 10:42:50           2019-06-27 10:40:38
1   2019-06-28 13:11:58           2019-06-28 13:11:22
2   2019-06-28 13:12:23           2019-06-28 13:11:22
3   2019-06-26 11:14:59           2019-06-26 11:13:38
4   2019-06-26 11:16:04           2019-06-26 11:15:37

例子

DATE_IDENTIFIED                   DATE_CLOSED         days       hours
2019-06-27 10:42:50           2019-09-27 10:40:38        90        0
2019-06-28 13:11:58           2019-06-28 19:11:22         0        6
2019-06-20 13:12:23           2019-06-28 18:11:22         8        5
2019-06-26 11:14:59           2019-06-26 13:13:38         0        2
2019-06-26 11:16:04           2019-06-28 14:15:37         2        3

标签: pythonpandasdatetime

解决方案


也许这篇文章中的代码行可能会让你开始:

df['A'] = pd.to_datetime(df['A'])
df['B'] = pd.to_datetime(df['B'])

df['C'] = (df['B'] - df['A']).dt.days

对于剩余的小时数,您可能需要做一些额外的数学运算,例如转换小时数并减去天数乘以 24 小时

df['B'] = (df['B'] - df['A']).dt.hours - df['C'] * 24

推荐阅读