2016-05-09 2 views
2

Ich habe Probleme mit den verschiedenen Pandas-Indexformaten.Pandas Zeitbereich in DatetimeIndex angeben

Meine univariate Zeitreihen (Daten) sieht wie folgt aus

2015-01-01 22:00:01.973 1.210525 
2015-01-01 22:00:03.297 1.210490 
2015-01-01 22:00:23.922 1.210485 
2015-01-01 22:00:24.507 1.210480 
2015-01-01 22:01:05.979 1.210490 
2015-01-01 22:01:08.390 1.210525 
2015-01-01 22:01:09.899 1.210520 
2015-01-01 22:01:09.950 1.210505 
2015-01-01 22:01:13.576 1.210505 
2015-01-01 22:01:19.984 1.210485 
2015-01-01 22:01:27.936 1.210510 

wo

>>> type(data) 
<class 'pandas.core.series.Series'> 
>>> type(data.index) 
<class 'pandas.tseries.index.DatetimeIndex'> 
>>> 

ich eine Funktion haben, die einen Ausgangspunkt extrahiert und einen Endpunkt, sagen

>>>start 
textdate 
2015-01-01 22:00:03.297 1.210490 
Name: mean, dtype: float64 
>>> 

>>>end 
textdate 
2015-01-01 22:01:19.984 1.210485 
Name: mean, dtype: float64 
>>> 

Wie kann ich die Serie basierend auf den Indexwerten, die DatetimeIndex zu sein scheinen, von Anfang bis Ende zerschneiden Matte selbst als

>>> start.index 
DatetimeIndex(['2015-01-01 22:00:03.297'], dtype='datetime64[ns]', name=u'textdate', freq=None) 
>>> 

habe ich versucht, diese

series = data[start.index : end.index] 

, die mir die DatetimeIndex Objekte in Zeitmarken beginnen und enden ...

+1

hat 'data.loc [start.index: end.index]' arbeiten? – EdChum

+0

Gleicher Fehler mit data.loc [...] – Pat

+1

OK wie wäre es mit 'data.loc [start.index [0]: end.index [0]]'? – EdChum

Antwort

1

Sie benötigt, um den skalaren Wert innerhalb der einzelnen Reihe Series und übergeben diese an loc für den Zugriff auf die df zu schneiden:

data.loc[start.index[0] : end.index[0]] 
1

konvertieren

TypeError: Cannot convert input to Timestamp 

Aber ich nicht gibt Ich glaube, Sie verwenden Referenzen zu Series in Ihrem Slicing. Stattdessen versuchen:

series = data[start.index[0] : end.index[0]] 

Ich denke, Ihre start und end einzige Periode Serie.