You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

负浮点型日期列转换为dd-mm-yyyy格式时年份异常问题咨询

问题原因

你得到1969年左右的日期,是因为直接调用日期转换方法时,默认将数值识别为Unix时间戳:Unix时间戳的0值对应1970-01-01 00:00:00 UTC,负数自然会解析为1970年之前的日期。

你的这些浮点值本质是相对于某个固定基准日期的时间偏移量,只要先确定数据源对应的基准日期,再做偏移计算即可得到2018-2020区间的正确日期。

解决步骤

  1. 确认你数据集对应的基准日期:即偏移量为0时对应的正确日期,需要根据你数据的采集规则/来源确定,以下示例假设基准日期为2020-01-01,你可以根据实际情况替换。
  2. 用pandas做偏移计算并格式化,代码示例如下:
import pandas as pd

# 构造示例DataFrame,替换为你自己的df
df = pd.DataFrame({
    'Date': [-1.476329, -2.754683, -0.763295, -3.113292, -1.353446]
})

# 替换为你的实际基准日期
base_date = pd.Timestamp('2020-01-01')
# 将浮点值转为天数偏移,叠加基准日期
df['formatted_date'] = base_date + pd.to_timedelta(df['Date'], unit='D')
# 格式化为dd-mm-yyyy的字符串格式
df['formatted_date'] = df['formatted_date'].dt.strftime('%d-%m-%Y')
  1. 若你的浮点值偏移单位不是天,修改pd.to_timedelta的unit参数即可:可选值包括h(小时)、m(分钟)、s(秒)等,适配你的数据规则即可。

内容的提问来源于stack exchange,提问作者Sudhanshu Sharan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 09:36:04