Subsassing Pandas DatetimeIndex

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Subsassing Pandas DatetimeIndex相关的知识,希望对你有一定的参考价值。

我正在尝试在python中创建自定义datetime类以支持时间序列模型。在回顾了一些现有的python库之后,我发现pandas DatetimeIndex类提供了我正在寻找的许多功能,但是我仍然想添加一些满足我需求的方法。我尝试使用自定义的init构造函数对DatetimeIndex类进行子类化,然后调用超级init构造函数,但我似乎无法使其正常工作。有人这样做吗?深入了解如何实现此目标非常好。

这是我能想到的最简单的例子。这是在名为time的模块中定义的类:

from pandas import DatetimeIndex

class DatetimeSub(DatetimeInex):

    def __init___(initTime):

        super().__init__(initTime)

当我在控制台中使用以下代码测试该类时:

import numpy as np

from time import DatetimeSub

testTime =  TimeEfo2(np.arange('1985-01-01 12:00','1985-02-01 12:00', dtype="datetime64[D]"))

我收到以下错误:

TypeError:object。init()恰好接受一个参数(要初始化的实例)

我不理解,因为您可以使用datetime64数组实例化DatetimeIndex。该代码可以正常工作:

from pandas import DatetimeIndex

import numpy as np

dT = DatetimeIndex(np.arange('1985-01-01 12:00','1985-02-01 12:00', dtype="datetime64[D]"))

谢谢!

答案

构造函数的第一个参数始终为self。因此,如果要将initTime作为第二个参数传递,则需要将其添加到构造函数中,如下所示:

class DatetimeSub(DatetimeIndex):
    def __init__(self, initTime):
        super().__init__()

以上是关于Subsassing Pandas DatetimeIndex的主要内容,如果未能解决你的问题,请参考以下文章

Python Pandas 在 to_datetime 上调试

数据结构化

什么是 Vaex 函数将字符串解析为 datetime64,相当于 pandas to_datetime,允许自定义格式?

将日期时间列转换为字符串列

熊猫时间戳与日期时间的性能缓慢

火花数据框删除重复并保留第一