我有以下数据:
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
我试图通过在Highs.index(values)
内输入值来获取索引,但无法获取索引。
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))
当我使用print('Index = ',highs.index(150.44))
时,我收到类型错误:
print('Index =',highs.index(150.44))
TypeError:'DatetimeIndex'对象不可调用
他们无论如何都要使用数据框中的特定值来获取日期时间索引吗?
答案 0 :(得分:3)
由于您尝试索引/切片到DataFrame的索引,因此必须使用方括号。所以,而不是
df.index(...)
使用
df.index[...]
但是,您似乎想要获取High
为150.44的列的索引。你可以这样做,使用布尔索引:
highs[df['High'] == 150.44].index
# DatetimeIndex(['2017-07-21'], dtype='datetime64[ns]', name='Date', freq=None)
或者更简单:
highs[df['High'] == 150.44].index.tolist()[0]
# Timestamp('2017-07-21 00:00:00')