Панды из функции / петли - PullRequest
0 голосов
/ 20 марта 2019

Я импортирую данные о запасах в Python из Yahoo.

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

1 Ответ

1 голос
/ 20 марта 2019

Исправляем ваш код следующим образом:

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)
...