如何在Pandas中为Time列添加对应Date列的正确日期?
解决方法
你遇到的问题是因为Time列被转成了datetime类型(自带1900-01-01的默认日期),而非单纯的时间差类型,直接用字符串拼接或datetime相加都会触发类型错误。这里提供两种可行的解决方式:
方法一:将Time转为Timedelta后与Date相加
把Time列转换成时间差(Timedelta)类型,就能直接和Date列的datetime值相加,生成完整的日期时间:
df["Date"] = pd.to_datetime(df["Date"], format="%d/%m/%Y", exact=False) # 将Time转换为时分秒格式的时间差 df["Time"] = pd.to_timedelta(df["Time"]) # 合并得到完整的日期时间列 df["Datetime"] = df["Date"] + df["Time"]
方法二:拼接日期时间字符串后转成datetime
如果偏好字符串拼接的思路,先把Date列转成指定格式的字符串,再和Time字符串拼接,最后统一转为datetime类型:
df["Date"] = pd.to_datetime(df["Date"], format="%d/%m/%Y", exact=False) # 拼接日期字符串与时间字符串,再转为datetime df["Datetime"] = pd.to_datetime( df["Date"].dt.strftime("%Y-%m-%d") + " " + df["Time"], format="%Y-%m-%d %H:%M:%S" )
两种方法都能生成包含正确日期和时间的Datetime列,用该列作为Plotly图表的X轴即可解决显示异常问题。
内容的提问来源于stack exchange,提问作者pedlobs
相关产品推荐
相关产品推荐

