根据范围计算两个日期之间的小时数

2024-09-28 10:10:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两列startDate和endDate 我需要计算这些日期之间从0到23的小时数 例如,开始日期为2000-12-05 10:00:00,结束日期为2001-01-15 15:00:00 我需要计算python中这两个日期之间0到23小时发生了多少次

我计算了日期之间的差异,并根据差异计算了小时数。 之后,我计划从startDate提取开始时间,直到startDateHour*小时,以获取结束时间 并遍历字典以增加计数,但是否有其他方法可以做到这一点

df['diff'] = df['endDate'] - df['startDate']
df['hours']= df['diff'] / np.timedelta64(1, 'h')

Tags: 方法df字典np时间diff差异计划
2条回答

你可以做:

>>> df['diff'] = df['endDate'] - df['startDate']
>>> df['hours'] = df['diff'].dt.components.hours

考虑到这些是pd.Timedelta对象

>>> idx = pd.date_range('2018-01-01', periods=5, freq='H')
>>> df = pd.DataFrame({'ts':ts, 'ts_2':ts + pd.Timedelta(hours=1)})
>>> df

                   ts                ts_2
0 2018-01-01 00:00:00 2018-01-01 01:00:00
1 2018-01-01 01:00:00 2018-01-01 02:00:00
2 2018-01-01 02:00:00 2018-01-01 03:00:00
3 2018-01-01 03:00:00 2018-01-01 04:00:00
4 2018-01-01 04:00:00 2018-01-01 05:00:00
>>> df['hour'] = (df['ts_2'] - df['ts']).dt.components.hours

>>> df

                   ts                ts_2  hour
0 2018-01-01 00:00:00 2018-01-01 01:00:00     1
1 2018-01-01 01:00:00 2018-01-01 02:00:00     1
2 2018-01-01 02:00:00 2018-01-01 03:00:00     1
3 2018-01-01 03:00:00 2018-01-01 04:00:00     1
4 2018-01-01 04:00:00 2018-01-01 05:00:00     1


from datetime import datetime

 X = (datetime.strptime(2020-01-05 01:19:49, '%Y-%m-%d %h:%m:%s') - 
      datetime.strptime(2020-01-02 06:12:44, '%Y-%m-%d %h:%m:%s'))

 print(X)

相关问题 更多 >

    热门问题