如何在Pandas DataFrame中合并日期时间列生成Timestamp列
解决方法
要将DataFrame中分离的entry_date(日期)和entry_time(时间)列合并为Timestamp格式的entry新列,以下是两种实用方案:
方案一:直接拼接字符串并转换
这是最直观的方法,先将日期和时间字符串拼接为完整的日期时间格式,再用pd.to_datetime转换为Timestamp类型:
import pandas as pd # 构造原始DataFrame data = { 'num_plate_ID': ['XYA', 'JDS', 'OAP', 'ASI'], 'cam': [2, 2, 0, 1], 'entry_date': ['2022-02-14', '2022-02-12', '2022-02-05', '2022-04-07'], 'entry_time': ['23:20:21', '23:20:21', '14:30:21', '15:30:21'] } df = pd.DataFrame(data) # 生成entry列 df['entry'] = pd.to_datetime(df['entry_date'] + ' ' + df['entry_time'])
执行后得到的结果如下:
num_plate_ID cam entry_date entry_time entry 0 XYA 2 2022-02-14 23:20:21 2022-02-14 23:20:21 1 JDS 2 2022-02-12 23:20:21 2022-02-12 23:20:21 2 OAP 0 2022-02-05 14:30:21 2022-02-05 14:30:21 3 ASI 1 2022-04-07 15:30:21 2022-04-07 15:30:21
方案二:分类型转换后相加(适用于已解析的日期/时间列)
如果entry_date已经是datetime64类型,entry_time是timedelta64类型,可以直接将两列相加得到Timestamp:
# 先将日期列转为datetime,时间列转为timedelta df['entry_date'] = pd.to_datetime(df['entry_date']) df['entry_time'] = pd.to_timedelta(df['entry_time']) # 相加生成entry列 df['entry'] = df['entry_date'] + df['entry_time']
说明
两种方法最终得到的entry列均为Pandas的Timestamp类型,支持后续的时间序列分析操作。
内容的提问来源于stack exchange,提问作者Carola
相关产品推荐
相关产品推荐

