2017-07-25 4 views
0

Ich habe folgende Daten:Typeerror: ‚DatetimeIndex‘ Objekt ist nicht aufrufbar

   High 
Date 
2017-07-17 150.90 
2017-07-18 150.13 
2017-07-19 151.42 
2017-07-20 151.74 
2017-07-21 150.44 
2017-07-24 152.44 

Ich habe versucht, den Index zu erhalten, indem in Wert innerhalb Highs.index(values) setzen, aber bin nicht in der Lage, den Index zu erhalten.

import datetime as dt 
from datetime import timedelta as td 
import pandas as pd 
import pandas_datareader.data as web 
import numpy as np 

start = dt.datetime(2017, 7, 15) 
df = web.DataReader('AAPL', 'google', start) 
Highs = df['High'] 
print('Index = ',Highs.index(150.44)) 

Wenn ich print('Index = ',Highs.index(150.44)) verwende ich erhalte die Typenfehler:

print('Index = ',Highs.index(150.44))

TypeError: 'DatetimeIndex' object is not callable

Sind sie ohnehin den Datetime-Index mit einem bestimmten Wert aus dem Datenrahmen zu bekommen?

+0

Was ist der _150.44_? – patrick

+0

Entschuldigung, die Frage wurde bearbeitet, bitte überprüfen Sie sie jetzt. – BlueQuant

Antwort

2

Es scheint, Sie wollen den Index der Spalte, wo die High ist 150,44. Sie können das tun, wie folgt, mit boolean indexing:

In [711]: Highs[df['High'] == 150.44].index 
Out[711]: DatetimeIndex(['2017-07-21'], dtype='datetime64[ns]', name='Date', freq=None) 

Oder, einfacher gesagt:

In [748]: Highs[df['High'] == 150.44].index.tolist()[0] 
Out[748]: Timestamp('2017-07-21 00:00:00') 
+0

'Highs [df ['High'] == 150.44] .index' Das gibt das Datum zurück, aber mit unnötigen Informationen, ist ihre sowieso nur Ausgabe wie' 2017-07-21' @Coldspeed? – BlueQuant

+0

@BlueQuant Bearbeitet :) –

+1

genial, vielen Dank! – BlueQuant

Verwandte Themen