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

Python给pandas DataFrame添加重复时间时后续值显负数如何解决

问题根源

你使用的X[date_column_name].iloc[0:5]属于pandas的链式索引操作,先取列再取行的调用逻辑下,pandas无法确定当前操作的是原DataFrame的视图还是临时副本,赋值过程中会破坏Date列原本的datetime64数据类型,后续行的日期会被强制转为底层存储的int64类型时间戳,数值溢出后就会显示为负数。

修复方案

修改赋值逻辑,使用.loc一次性指定行和列,避免链式索引操作,pandas会自动完成数据类型兼容处理,而且单个时间戳会自动广播到所有选中行,不需要手动生成重复列表:

X.loc[0:4, date_column_name] = pd.Timestamp('1980-01-01')

如果需要手动指定重复值也可以用以下写法,效果完全一致:

X.loc[0:4, date_column_name] = list(pd.date_range('1980-01-01', periods=1)) *5

赋值完成后可以执行print(X[date_column_name].dtype)验证列类型,只要输出为datetime64[ns]就说明数据正常,不会再出现负数时间戳的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:54:04