pandas计算excel两列的日期差

该博客介绍了如何使用pandas在Excel文件中计算两列日期之间的差值,包括相差的天数、秒数和小时数,并展示了如何设置结果的小数点保留位数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原始Excel数据

在这里插入图片描述
诉求:往Excel中追加两列"当前时间"、“时间差”,计算日期和当前时间相差的天数、小时、秒,
注:一天等于86400秒

插入两列数据到表格

# coding=utf-8
import pandas as pd
import datetime

df = pd.read_excel(r"C:\Users\Administrator\Desktop\测试数据.xls")  # 读取数据

format = "%Y-%m-%d %H:%M:%S"  # 设定日期格式
now = datetime.datetime.now()  # 当前时间:datetime.datetime(2021, 7, 30, 19, 43, 0, 844000)
now_time = now.strftime(format)  # 格式化时间:'2021-07-30 19:43:00'

# 插入两列数据
df.insert(3,"当前时间", now_time)  # 插入当前时间到第4列,表头名为"当前时间"
df.insert(4,'日期差', '')  # 插入空数据到第5列,表头名为"日期差"

此时,得到如下的数据:
在这里插入图片描述

计算两列的时间差

df['当前时间'] = pd.to_datetime(df['当前时间'])  # 转换时间格式
df['日期'] = pd.to_datetime(df['日期'])  # 转换时间格式
df['日期差'] = df['当前时间'] - df['日期']
df

此时,得到如下数据:
在这里插入图片描述

计算相差天数
df['日期差'] = df['当前时间'] - df['日期']
df['日期差'] = [d.days for d in df['日期差']]
df

在这里插入图片描述

计算相差秒数
df['日期差'] = df['当前时间'] - df['日期']
df['日期差'] = [d.days * 86400  + d.seconds for d in df['日期差']]  # d.seconds得到的是后面的xx:xx:xx时间秒数,不包含天数,还需要加上天数的秒
df

在这里插入图片描述

计算相差小时数
df['日期差'] = df['当前时间'] - df['日期']
df['日期差'] = [(d.days * 86400  + d.seconds) / 3600 for d in df['日期差']]
df

上面的秒数/3600即可得到小时数
在这里插入图片描述

设置小数点保留位数

上面计算得到的小时日期差小数位很多,如何保留小数位呢?

df['日期差'] = df['当前时间'] - df['日期']
df['日期差'] = [ "%.2f" % ((d.days * 86400  + d.seconds) / 3600) for d in df['日期差']]
df

%f表示输出浮点型,%.2f,表示保留小数点后2位

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值