Python使用pandas合并自定义函数输出的日期与时间的实现方法
Pandas 合并日期时间输出解决方案
首先导入所需依赖:
import pandas as pd import datetime
沿用你已有的两个自定义转换函数:
def jdtodatestd (jdate): if len(jdate) == 5: fmt = '%y%j' datestd = datetime.datetime.strptime(jdate, fmt).date() return(datestd) elif len(jdate) == 6: yr = jdate[0:2] day = jdate[2:len(jdate)] day = day.lstrip('0') jdate = yr+day fmt = '%y%j' datestd = datetime.datetime.strptime(jdate, fmt).date() return(datestd) elif len(jdate) == 7: fmt = '%Y%j' datestd = datetime.datetime.strptime(jdate, fmt).date() return(datestd) def jdtotimestd (jtime): if len(jtime) == 5: jtime = '0' + jtime elif len(jtime) == 6: jtime = jtime else: jtime = '000000' stdtime = jtime[0:2] + ':' + jtime[2:4] + ':' + jtime[4:6] return stdtime
假设你的原始数据存储在pandas DataFrame中,日期字段名为jdate、时间字段名为jtime,处理逻辑如下:
# 构造示例数据,可替换为你自己的DataFrame df = pd.DataFrame({ 'jdate': ['120365', '23001', '2023100'], 'jtime': ['140932', '91522', '1234'] }) # 转换日期为指定字符串格式 df['date_str'] = df['jdate'].apply(jdtodatestd).apply(lambda x: x.strftime('%Y, %m, %d')) # 转换时间为标准格式 df['time_str'] = df['jtime'].apply(jdtotimestd) # 拼接得到目标格式结果 df['final_datetime'] = df['date_str'] + ' ' + df['time_str']
执行后final_datetime列的第一条数据输出即为你需要的2012, 12, 30 14:09:32。
如果后续需要做时间计算,可额外将拼接后的字段转为pandas datetime类型:
df['datetime'] = pd.to_datetime(df['final_datetime'], format='%Y, %m, %d %H:%M:%S')
内容的提问来源于stack exchange,提问作者Special Circumstances Agent
相关产品推荐
相关产品推荐

