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

pandas.Timestamp是否为不可变类型?求权威解答或验证途径

pandas.Timestamp 是否为不可变类型?

答案很明确:pandas.Timestamp 是不可变类型,虽然官方文档没有把这一点放在最显眼的位置,但通过实际操作和特性验证就能确认。

给你几个简单的验证方法:

  • 尝试修改实例属性会报错
    直接动手试一下就知道,Timestamp的实例属性都是只读的,没法直接修改:

    import pandas as pd
    
    ts = pd.Timestamp('2023-10-01')
    # 尝试修改年份属性
    ts.year = 2024
    

    运行这段代码会立刻抛出 AttributeError: can't set attribute,这是不可变类型的典型表现。

  • 验证可哈希性
    不可变类型的一个关键特征是可哈希,能被用作字典的键或者存入集合。反过来,可变类型(比如列表)是做不到的:

    ts1 = pd.Timestamp('2023-10-01')
    ts2 = pd.Timestamp('2023-10-01')
    
    # 作为字典键正常工作
    ts_dict = {ts1: "hello"}
    print(ts_dict[ts2])  # 输出 'hello',因为两个实例哈希值一致
    
    # 存入集合只会保留一个实例
    ts_set = {ts1, ts2}
    print(len(ts_set))  # 输出 1
    

    如果是可变类型,执行这些操作会直接抛出 TypeError: unhashable type。

  • 参考底层设计逻辑
    Timestamp 本质是 pandas 对标 Python 标准库 datetime.datetime 的实现,而 datetime.datetime 本身就是不可变类型。pandas 在设计时保持了这个行为一致性,而且 Timestamp 继承的 DatetimeScalar 这类标量类型,在 pandas 的设计体系里就是不可变的。

至于官方文档没有明确标注的问题,可能是因为这个特性和标准库行为对齐,官方默认开发者会沿用对 datetime 的认知,或者相关说明藏在更细节的开发文档里,但通过上面的实际验证,完全可以确定它的不可变性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:02:30