2017-01-12 1 views
0

Warum ist das dritte Objekt unter einem Timestamp-Objekt? Ich habe ein Time-Objekt erwartet.Wie pandas.Timestamp Unterklasse?

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)) 

Hier sind die Ergebnisse, die ich aus Python siehe 2.7.11 und Pandas 0.19.0:

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

Antwort

0

Ich weiß, dass dies Ihre Frage nicht beantworten, aber FYI bekomme ich

<class '__main__.Time'> 

für alle 3 auf Python 2.7.13 und Pandas 0.18.1.

Das angezeigte Verhalten wurde in 0.19 eingeführt.

Here ist die relevante Codeänderung.

0

Dies funktioniert, aber in einer eleganten Welt pandas.Timestamp.__new__ wäre für mich die Klassenzuordnung tun:

import pandas as pd 
from datetime import datetime 

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

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