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

时间:2019-08-20 18:08:21

标签: python pandas datetime

大家好,我有两列采用日期时间格式,我想创建一个新列,其中以天为单位经过时间,第二列包含其余时间(以小时为单位)。请参见示例:

我的数据:

# 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

2 个答案:

答案 0 :(得分:1)

也许this post中类似代码的内容可能会让您入门:

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

答案 1 :(得分:1)

您需要这样做:

import pygame
pygame.init()
size = (40, 40)
screen = pygame.display.set_mode(size) 
print(pygame.display.get_surface().get_size())
pygame.display.set_caption("Example code for the draw module")
done = False
clock = pygame.time.Clock()

while not done:
    clock.tick(10)    
    for event in pygame.event.get():  # User did something
        if event.type == pygame.QUIT:  # If user clicked close
           done = True
    screen.fill((168,168,168))
    pygame.draw.ellipse(screen,(192,192,192) , [30, 20, 15, 10], 2)
    fname = "shape1.png"
    pygame.image.save(screen, fname)
    print("file {} has been saved".format(fname))
    pygame.display.flip()
pygame.quit()

输出:

### 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