简体   繁体   English

如何计算经过的天数和小时数

[英]how to calculate elapsed time in days and hours

Hi everyone I have two columns in datetime format and I want to make a new column with the elapsed time in days and a second column containing the rest in hours. 大家好,我有两列为datetime格式,我想创建一个新列,以天为单位经过时间,第二列以小时为单位包含其余时间。 please see the exemple: 请参见示例:

my data : 我的数据:

# 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

Example

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

Perhaps something along the line of the code in this post might get you started: 也许这篇文章中的代码可能会使您入门:

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

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

For the remaining hours you might need to do some additional math by for instance converting the difference in hours and subtracting the number of days times 24 hours 对于剩余的小时数,您可能需要做一些额外的数学运算,例如转换小时数之差并减去24小时的天数

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

You need to do: 您需要做:

### first convert your columns to datetime object if it is not already
df['DATE_IDENTIFIED']  = pd.to_datetime(df['DATE_IDENTIFIED'])
df['DATE_CLOSED']  = pd.to_datetime(df['DATE_CLOSED'])

### GET DAYS LIKE THIS
df['days'] = (df['DATE_CLOSED'] - df['DATE_IDENTIFIED']).dt.days

### GET HOURS LIKE THIS
df['hours'] = df['DATE_CLOSED'].dt.hour - df['DATE_IDENTIFIED'].dt.hour

Output: 输出:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM