Я тестирую этот код.
# Define the ticker list
from pandas import DataFrame
import pandas as pd
tickers_list = ['AAPL', 'WMT', 'IBM', 'MU', 'BA', 'AXP']
# Fetch the data
import yfinance as yf
company_names = []
for item in tickers_list:
my_stock = yf.Ticker(item)
company_name = my_stock.info['longName']
company_names.append(item + '-' + company_name)
df_names = DataFrame(company_names)
print(df_names)
pd.set_option('display.max_columns', None)
data_hist = yf.download(tickers_list,'2020-05-15')['Adj Close']
print(data_hist.head(5))
Первый DF выглядит так.
0
0 AAPL-Apple Inc.
1 WMT-Walmart Inc.
2 IBM-International Business Machines Corporation
3 MU-Micron Technology, Inc.
4 BA-The Boeing Company
5 AXP-American Express Company
Второй DF выглядит так.
AAPL AXP BA IBM MU WMT
Date
5/15/2020 307.709991 82.220001 120 116.980003 44.41 125.940002
5/18/2020 314.959991 88.410004 135.440002 121.559998 45.919998 127.660004
5/19/2020 313.140015 87.260002 130.440002 120.290001 45.119999 124.949997
5/20/2020 319.230011 90.730003 133.320007 121.379997 46.639999 125.449997
5/21/2020 316.850006 89.830002 139 119.120003 45.220001 124.989998
Я хочу объединить эти фреймы данных, чтобы окончательный результат выглядел следующим образом.
Apple Inc. American Express Company The Boeing Company International Business Machines Corporation Micron Technology, Inc. Walmart Inc.
AAPL AXP BA IBM MU WMT
Date
5/15/2020 307.709991 82.220001 120 116.980003 44.41 125.940002
5/18/2020 314.959991 88.410004 135.440002 121.559998 45.919998 127.660004
5/19/2020 313.140015 87.260002 130.440002 120.290001 45.119999 124.949997
5/20/2020 319.230011 90.730003 133.320007 121.379997 46.639999 125.449997
5/21/2020 316.850006 89.830002 139 119.120003 45.220001 124.989998
Я думаю, что потребуется какой-то поиск, потому что я не могу сопоставить эти тикеры на основе порядкового номера, потому что 'yf.download'
, кажется, упорядочивает имена полей по мере его выполнения. Пробовал concat
и merge
. Ни то, ни другое не сработало. Есть идеи, как я могу заставить это работать?