函数/循环中的pandas

问题描述 投票:0回答:1

我从yahoo导入python中的股票数据。

import pandas as pd
import numpy as np
from pandas_datareader import data
from datetime import date
from datetime import timedelta

def Get_Historic_SP(ticker):
    end_date = date.today()
    start_end = end_date - timedelta(weeks=260)
    df = data.DataReader(ticker, data_source='yahoo',start=start_date, end=end_date)
    df.index = pd.to_datetime(df.index)
    df.reset_index().rename(columns={df.index.name:'Date'})
    return df['Close']

这很好用。我想为多个代码执行此操作,并在列中创建一个公司的数据框。此外,每列都有自动收报机(comps)作为标题。

我在用:

    comps = ['AVON.L', 'BYG.L']

    Date         AVON.L    BYG.L
    20/03/2019   193       980
python pandas yahoo-finance
1个回答
1
投票

修复代码如下:

import pandas as pd
import numpy as np
from pandas_datareader import data
from datetime import date
from datetime import timedelta

def Get_Historic_SP(ticker, start_date):
    end_date = date.today()
    start_end = end_date - timedelta(weeks=260)
    df = data.DataReader(ticker, data_source='yahoo',start=start_date, end=end_date)
    df.index = pd.to_datetime(df.index)
    df.reset_index().rename(columns={df.index.name:'Date'})
    return df['Close']

您可以使用以下代码首先创建字典,然后将其转换为DataFrame:

tickers = ['googl', 'aapl']

ticker_dict = {}
for ticker in tickers:
    ticker_dict[ticker] = Get_Historic_SP(ticker, date(2019,3,1))

df = pd.DataFrame(ticker_dict)
© www.soinside.com 2019 - 2024. All rights reserved.