Python Pandas_DataReader 为每个代码创建一个 DF 并用代码名称保存 .to_csv

Python Pandas_DataReader to create a DF for each ticker and save .to_csv with tickers name

关于我之前在 Whosebug 的一个问题,一个叫 Ash 的人给了我一个代码,我根据需要进行了编辑,但是,我很难弄清楚如何获得 'open', 'high'、'low'、'close'、'volume' 为每个代码,并将它们中的每一个保存为 CSV。

下面的代码只给我带来了我不需要的 'Adj Close'。我想为每个代码获取一个 DF,其中开盘价、最高价、最低价、收盘价、成交量作为列,然后保存。to_csv 每个 DF 都带有代码名称。

是否可以在不破坏 'Ticker' 列表的情况下这样做?

from datetime import date
import pandas as pd
import datetime
from pandas_datareader import data as wb

start = date.today()-datetime.timedelta(days=2*365)
end = date.today()

tickers = ['MGFF11.SA',
'XPML11.SA',
'VISC11.SA',
'HGCR11.SA',
'XPLG11.SA',]

price_data = []
for ticker in tickers:
    prices = wb.DataReader(ticker, start = start, end = end, data_source='yahoo')
    price_data.append(prices.assign(ticker=ticker)[['ticker', 'Adj Close']])

df = pd.concat(price_data)

pd.set_option('display.max_columns', 500)

df = df.reset_index()
df = df.set_index('Date')
table = df.pivot(columns='ticker')
table.columns = [col[1] for col in table.columns]
print(table)

IIUC:

for ticker in tickers:
    prices = wb.DataReader(ticker, start = start, end = end, data_source='yahoo')
    ticker_csv = "{}.csv".format(ticker)
    prices.to_csv(ticker_csv)

为每个代码单独 csv 文件