Конечный результат примера df, который я ищу, приведен ниже, с скорректированными ценами закрытия в качестве данных:
# GE JPM MSFT PG
#date
#2015-01-02 25.06 62.49 46.760 90.44
#2015-01-05 24.60 60.55 46.325 90.01
#2015-01-06 24.07 58.98 45.650 89.60
#2015-01-07 24.08 59.07 46.230 90.07
#2015-01-08 24.37 60.39 47.590 91.10
import yfinance as yf
import datetime
import pandas as pd
import pandas_datareader as pdr
def get(tickers, startdate, enddate):
def data(ticker):
return (pdr.get_data_yahoo(ticker, start=startdate, end=enddate))
datas = map (data, tickers)
return(pd.concat(datas, keys=tickers, names=['Ticker', 'Date']))
ticker = ['GE' , 'JPM' , 'MSFT' , 'PG']
all_data = get(ticker, datetime.datetime(2018, 10, 1), datetime.datetime(2020, 1, 1))
print (all_data)
High Low ... Volume Adj Close
Ticker Date ...
GE 2018-10-01 229.419998 226.350006 ... 23600800.0 221.988266
2018-10-02 230.000000 226.630005 ... 24788200.0 223.961426
2018-10-03 233.470001 229.779999 ... 28654800.0 226.686707
2018-10-04 232.350006 226.729996 ... 32042000.0 222.701340
2018-10-05 228.410004 220.580002 ... 33580500.0 219.087158
... ... ... ... ... ...
JPM 2019-12-24 1350.260010 1342.780029 ... 347500.0 1343.560059
2019-12-26 1361.327026 1344.469971 ... 667500.0 1360.400024
2019-12-27 1364.530029 1349.310059 ... 1038400.0 1351.890015
2019-12-30 1353.000000 1334.020020 ... 1050900.0 1336.140015
2019-12-31 1338.000000 1329.084961 ... 961800.0 1337.020020
Приведенный выше код сохраняет тикеры в строки вместо столбцов.
Мне нужен только скорректированный столбец закрытия для каждого тикера. Я знаю, как извлечь столбец «Скорректированное закрытие» в другую серию pandas, но не могу понять, как действовать дальше.
спасибо