目录
情况一:
一、创建数据集
time1 = "2022-08-15 12:34:56"
time2="2023-10-01 16:34:56"
二、查看数据类型
type(time1)
type(time2)
三、计算时间差(失败)
直接用time2-time1会报错,所以要将字符型转换成datatime类型
四、将字符型时间转换成datetime类型
from datetime import datetime
time_format = "%Y-%m-%d %H:%M:%S"
datetime1 = datetime.strptime(time1, time_format)
datetime2 = datetime.strptime(time2, time_format)
五、计算时间差(成功)
(一)时间差用天和秒表示
time_difference=datetime2-datetime1
结果如下:
`datetime.timedelta(days=412, seconds=14400)` 表示一个时间间隔,其中包含412天和14400秒。
(二)时间差用年表示
years = time_difference.days / 365
情况二:
一、创建数据集
import pandas as pd
df=pd.DataFrame()
df["time_start"]=["2022-08-15","2012-06-19"]
df["time_end"]=["2023-05-15","2016-08-12"]
二、将时间字符串转换为datetime类型
df['time_start'] = pd.to_datetime(df['time_start'])
df['time_end'] = pd.to_datetime(df['time_end'])
三、计算时间差
(一)时间差用天表示
# 计算时间差,单位为天
df['时间差-天'] = (df['time_end'] - df['time_start']).dt.days
df
(二) 时间差用年表示
import numpy as np
df['时间差-年'] = (df['time_end'] - df['time_start']) / np.timedelta64(1, 'Y')
下边是将“时间差-年”四舍五入,近似到整年份
df['时间差-年']=df['时间差-年'].apply(lambda x: round(x, 0)).astype(int)