首页 > 解决方案 > Python_将日期时间差转换为天差

问题描述

我想计算行之间的时间差并以天表示。例如datetime1(MM/DD/YY hh:mm:ss) - datetime2(MM/DD/YY hh:mm:ss) = 0.5 (days) 下面附上数据和图片的例子。谢谢

date_time               Calculation_(days)
12/17/2020 17:50:48     0
12/17/2020 17:51:46     0.000671296
12/17/2020 17:52:02     0.000185185
12/17/2020 17:52:58     0.000648148
12/17/2020 17:53:23 
12/17/2020 17:54:00 
12/17/2020 17:54:16 
12/17/2020 17:55:32 
12/17/2020 17:56:01 
12/17/2020 17:56:44 

在此处输入图像描述

标签: pythondatetimedatediffpython-datetime

解决方案


import pandas as pd
df = pd.DataFrame({'datetime': {0: '12/17/2020 17:50:48',
  1: '12/17/2020 17:51:46',
  2: '12/17/2020 17:52:02',
  3: '12/17/2020 17:52:58',
  4: '12/17/2020 17:53:23',
  5: '12/17/2020 17:54:00',
  6: '12/17/2020 17:54:16',
  7: '12/17/2020 17:55:32',
  8: '12/17/2020 17:56:01',
  9: '12/17/2020 17:56:44'}})

df['datetime'] = pd.to_datetime(df['datetime'])
df['Calculation_(days)'] = (df['datetime'] - df['datetime'].shift()).dt.seconds / 86400
df.fillna(0, inplace=True)

输出

    datetime            Calculation_(days)
0   2020-12-17 17:50:48 0.000000
1   2020-12-17 17:51:46 0.000671
2   2020-12-17 17:52:02 0.000185
3   2020-12-17 17:52:58 0.000648
4   2020-12-17 17:53:23 0.000289
5   2020-12-17 17:54:00 0.000428
6   2020-12-17 17:54:16 0.000185
7   2020-12-17 17:55:32 0.000880
8   2020-12-17 17:56:01 0.000336
9   2020-12-17 17:56:44 0.000498

推荐阅读