Pandas合并日期与小时列为%Y%m%d %H:%M:%S格式问题咨询
问题根因
你将date列转换为datetime类型后,直接转字符串会默认携带00:00:00的默认时间后缀,拼接hour列的时间后就会出现重复的时间段。
方案1(推荐):直接生成datetime类型字段(适配后续时间计算)
不需要转字符串拼接,直接利用pandas的时间运算能力合并两列,生成的字段原生支持时间筛选、序列运算等操作:
import pandas as pd # 将hour列转换为时间增量,和date列的日期直接相加 prec['Datetime'] = prec['date'] + pd.to_timedelta(prec['hour']) # 如果需要字符串格式的结果,额外增加一步格式化即可 # prec['Datetime'] = prec['Datetime'].dt.strftime('%Y-%m-%d %H:%M:%S')
方案2:修改原有字符串拼接逻辑
如果只需要字符串格式的结果,调整date列的字符串格式化规则,仅提取日期部分即可:
prec['Datetime'] = prec['date'].dt.strftime('%Y-%m-%d') + ' ' + prec['hour'].astype(str)
两种方案都可以得到你预期的输出结果。
内容的提问来源于stack exchange,提问作者LauraN
相关产品推荐
相关产品推荐

