@PashaLynx
Страшный дилетант

Pandas как получить вывод в виде одного только значения?

Сразу говорю, новичок, поэтому сильно не бейте. Работаю с неофициальным API Yahoo Finance. Хочу получить стоимость акции на момент открытия торгов.
Сам код:
import yfinance as yf

msft = yf.Ticker("AWR")
c = msft.history(period="max", interval="1d")

e = c.loc[['2020-08-14'], 'Open']
print(e)


На выводе получаю так:
Date
2020-08-14    78.52
Name: Open, dtype: float64

Как можно сделать так, была переменная типа float со значением Open, то есть

print(e)

78.52

Заранее спасибо.
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
@zexer
import pandas as pd

d = {'q': [1.5,2.2,3], 'w': [2,3,4]}
df = pd.DataFrame(d)


df.loc[0, 'q'].tolist()
# Out: 1.5

При выборе одного значения вы должны указывать название индекса напрямую в loc, то есть в вашем случае так:
e = c.loc['2020-08-14', 'Open']

А если нужно сделать срез нескольких значений, то уже нужно использовать список, но тогда чтобы получить значения можно использовать метод .tolist(), который вернет список или .values, который вернет np.array
df.loc[[0, 1], 'q'].tolist()
# Out: [1.5, 2.2]

df.loc[[0, 1], 'q'].values
# Out: array([1.5, 2.2])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы