如何子类化pandas.Timestamp?

时间:2017-01-12 23:48:36

标签: python pandas subclassing

为什么第三个对象位于Timestamp对象下面?我期待着一个时间对象。

import pandas as pd
from datetime import datetime

class Time(pd.Timestamp):
    def __new__(cls, *args, **kwargs):
        return pd.Timestamp.__new__(cls, *args, **kwargs)

print type(Time(datetime(2012, 5, 1)))
print type(Time('2012-05-01'))
print type(Time(2012, 5, 1))

以下是我从python 2.7.11和pandas 0.19.0中看到的结果:

<class '__main__.Time'>
<class '__main__.Time'>
<class 'pandas.tslib.Timestamp'>

3 个答案:

答案 0 :(得分:0)

我知道这不能回答你的问题,但是我得到了

<class '__main__.Time'>

对于python 2.7.13上的所有3和pandas 0.18.1。

您看到的行为是在0.19中引入的。

Here是相关的代码更改。

答案 1 :(得分:0)

这很有效,但在优雅的世界s1 = scrypt.hash(password=phrase+'\x01', salt=saltPhrase+'\x01', N=1<<18, r=8, p=1, buflen=32) s2 = pbkdf2(phrase+'\x02', saltPhrase+'\x02', 1<<16, keylen=32, prf='hmac-sha256') key = ''.join(chr(ord(a) ^ ord(b)) for a,b in zip(s1,s2)) key_hex = hexlify(key) newWallet = BitcoinKeypair(key_hex) 会为我做课程分配:

pandas.Timestamp.__new__

答案 2 :(得分:0)

此行为可能是因为pandas Timestamp类定义了 new ()而不是 init ()来构造新对象。参见this code