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

为何Pandas中pd.Timestamp因参数不同返回当前/纪元日期?

Pandas中pd.Timestamp不同输入的行为差异解析

代码与输出

import pandas as pd

t1 = pd.Timestamp("23:12:05")
print("t1:",t1)

t2 = pd.Timestamp(1)
print("t2:",t2)

输出结果:

t1: 2024-07-23 23:12:05
t2: 1970-01-01 00:00:00.000000001

原因解析

1. 仅时分秒的字符串输入

当传入只包含时分秒的字符串(比如"23:12:05")时,pd.Timestamp会自动用当前系统日期补全缺失的日期部分,生成完整的datetime对象。这是因为Timestamp本质是完整的日期时间类型,必须包含日期和时间两个维度的信息,缺省日期时就默认用当前日期填充。

2. 整数输入

当传入整数(比如1)时,这个数值会被当作Unix纪元的纳秒时间戳处理。Unix纪元的起始点是1970-01-01 00:00:00 UTC,所以输入1就代表从纪元开始后过了1纳秒,最终得到1970-01-01 00:00:00.000000001。

如果需要指定时间戳的单位,可以通过unit参数调整,比如:

# 把1当作秒级时间戳
t3 = pd.Timestamp(1, unit='s')
print("t3:", t3)  # 输出:1970-01-01 00:00:01

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 17:18:13