Pandas技术问题:提取date列日期并合并至time列
提取日期并合并到时间列的解决方案
需求说明
现有如下DataFrame(time和date列均为object类型):
time date 11:42:14.556 2023-12-10 10:12:00.129465868 11:42:16.005 2023-12-11 15:25:00.759067848 11:42:32.175 2023-12-12 13:56:00.653087940
需要从date列提取日期部分,合并到time列,生成完整的时间数据。
具体步骤
1. 提取date列的日期部分
date列格式为YYYY-MM-DD HH:MM:SS.xxxxxx,日期部分固定为前10个字符,直接用字符串切片提取:
df['date_part'] = df['date'].str[:10]
也可以用字符串分割方式(按空格拆分后取第一个元素):
df['date_part'] = df['date'].str.split().str[0]
2. 合并日期与时间列
将提取的日期部分和time列用空格拼接,生成完整的时间字符串:
df['full_datetime_str'] = df['date_part'] + ' ' + df['time']
3. (可选)转为datetime类型
如果需要后续做时间相关操作,把拼接后的字符串转为datetime类型:
df['full_datetime'] = pd.to_datetime(df['full_datetime_str'])
完整示例代码
import pandas as pd # 构造示例DataFrame data = { 'time': ['11:42:14.556', '11:42:16.005', '11:42:32.175'], 'date': ['2023-12-10 10:12:00.129465868', '2023-12-11 15:25:00.759067848', '2023-12-12 13:56:00.653087940'] } df = pd.DataFrame(data) # 一步到位生成datetime列(跳过中间列) df['full_datetime'] = pd.to_datetime(df['date'].str[:10] + ' ' + df['time']) # 输出结果 print(df)
运行后会得到包含完整时间列的DataFrame,可根据需求保留或删除原列。
内容的提问来源于stack exchange,提问作者harp1814
相关产品推荐
相关产品推荐

