如何使用Python计算CSV文件中两个日期字段的经过时间
问题原因
- 你通过
pd.read_csv读取的时间列默认是字符串格式,无法直接传入datetime.date()构造函数使用 datetime.date()仅支持处理单个日期值,不能直接批量处理pandas的整列Series数据
解决方案
用pandas自带的日期解析功能实现整列批量计算,示例代码如下:
import pandas as pd # 读取文件时直接将指定列解析为datetime格式 data = pd.read_csv("./dates.csv", parse_dates=['departure_ts', 'arrival_ts']) # 直接对两列做减法,得到每行的时间差 data['elapsed_time'] = data['arrival_ts'] - data['departure_ts'] # 输出结果 print(data[['departure_ts', 'arrival_ts', 'elapsed_time']])
可选的差值单位转换
如果需要提取具体单位的数值,可以用以下方法:
- 转换为总秒数:
data['diff_seconds'] = data['elapsed_time'].dt.total_seconds() - 转换为总小时数:
data['diff_hours'] = data['elapsed_time'].dt.total_seconds() / 3600 - 提取天数部分:
data['diff_days'] = data['elapsed_time'].dt.days
内容的提问来源于stack exchange,提问作者Ralass
相关产品推荐
相关产品推荐

