在Pandas中计算时间列与上一行的秒级时间差
解决Pandas计算行间时间差(秒为单位)的问题
要实现需求,只需三步操作:
将字符串格式的'time'列转换为datetime类型
原始列是m/d/yyyy h:mm:ss格式的字符串,必须先转为Pandas的datetime类型才能进行时间计算:import pandas as pd # 假设你的DataFrame名为df df['time'] = pd.to_datetime(df['time'], format='%m/%d/%Y %H:%M:%S')计算行与上一行的时间差并转为秒
使用diff()方法计算相邻行的时间差,再通过dt.total_seconds()将Timedelta类型转换为总秒数:df['SEC'] = df['time'].diff().dt.total_seconds()处理第一行的空值(可选)
第一行没有上一行数据,计算结果会是NaN,如果要和示例一样显示为空字符串,可填充空值:df['SEC'] = df['SEC'].fillna('')
最终得到的结果如下:
| time | SEC |
|---|---|
| 4/18/2023 2:43:00 | |
| 4/18/2023 3:13:00 | 1800 |
| 4/18/2023 3:35:53 | 1373 |
| 4/18/2023 3:36:03 | 10 |
内容的提问来源于stack exchange,提问作者Luis
相关产品推荐
相关产品推荐

