在Pandas中的两个日期列的差异

问题描述 投票:0回答:1

我想得到脚本下面的两个日期列和脚本中使用的数据之间的区别,但我得到的结果是三行都一样的。

df = pd.read_csv(r'Book1.csv',encoding='cp1252')
df
Out[36]: 
              Start              End  DifferenceinDays  DifferenceinHrs
0  10/26/2013 12:43  12/15/2014 0:04               409             9816
1    2/3/2014 12:43   3/25/2015 0:04               412             9888
2   5/14/2014 12:43    7/3/2015 0:04               409             9816

我希望得到的结果是在excel中计算的DifferenceinDays列中的结果,但在python中得到的结果是三行相同的,请参考下面使用的代码,有谁能让我知道如何计算2个日期列之间的差异,我试图得到两个日期列之间的小时数。

df["Start"] = pd.to_datetime(df['Start'])
df["End"] = pd.to_datetime(df['End'])

df['hrs']=(df.End-df.Start)
df['hrs']
Out[38]: 
0   414 days 11:21:00
1   414 days 11:21:00
2   414 days 11:21:00
Name: hrs, dtype: timedelta64[ns]
pandas date-difference
1个回答
0
投票

IIUC, np.timedelta64(1,'h')

另外,excel计算时长的方式好像不一样,不知道为什么。

import numpy as np
df['hrs'] = (df['End'] - df['Start']) / np.timedelta64(1,'h')

print(df)

                Start                 End  DifferenceinHrs      hrs
0 2013-10-26 12:43:00 2014-12-15 00:04:00             9816  9947.35
1 2014-02-03 12:43:00 2015-03-25 00:04:00             9888  9947.35
2 2014-05-14 12:43:00 2015-07-03 00:04:00             9816  9947.35
© www.soinside.com 2019 - 2024. All rights reserved.