如何将pandas._libs.tslibs.timestamps.Timestamp转换为距午夜的秒数?
Pandas中计算Timestamp距当日午夜的秒数(快捷实现)
首先,你提到的示例结果对应的是距当日午夜的秒数(而非前一日午夜,否则结果应为24*3600 + 25204.85 = 108004.85),以下是Pandas中的两种快捷实现方式:
方法一:提取时间部分计算总秒数
直接调用Timestamp对象的time()方法获取当日时间片段,再通过total_seconds()得到秒数:import pandas as pd ts = pd.Timestamp('2016-01-01 07:00:04.85+00:00') seconds = ts.time().total_seconds() # 结果:25204.85方法二:计算与当日午夜的时间差
先通过floor('D')获取当日午夜的Timestamp,再计算时间差并提取总秒数:seconds = (ts - ts.floor('D')).total_seconds() # 结果:25204.85
如果确实需要计算距前一日午夜的秒数,只需在当日午夜的基础上减去一天:
prev_midnight = ts.floor('D') - pd.Timedelta(days=1) seconds_since_prev_midnight = (ts - prev_midnight).total_seconds() # 结果:108004.85
最后,如果需要将结果转为int类型(注意会丢失小数部分),直接用int(seconds)即可,比如int(25204.85)会得到25204。
内容的提问来源于stack exchange,提问作者roulette01
相关产品推荐
相关产品推荐

