Создать динамические столбцы с расчетом - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть дата-фрейм, называемый ценами, с историческими ценами на акции для следующих компаний:

['APPLE', 'AMAZON', 'GOOGLE']

До сих пор, с помощью дружественного пользователя, я смог создать фрейм данных для каждого из этих периодов с помощью следующего кода:

import pandas as pd
import numpy as np
from datetime import datetime, date

prices = pd.read_excel('database.xlsx')

companies=prices.columns
companies=list(companies)
del companies[0]

timestep = 250
prices_list = [prices[day:day + step] for day in range(len(prices) - step)]

Теперь мне нужно оценить изменение цены для каждогопериод в 251 день (Цена 251 / Цена 1; Цена 252 / Цена 2; Цена 253 / Цена и т. д.) для каждой из компаний и создайте столбец для каждой из них.

Я также хотел бы указатьимя столбца динамическое, поэтому я могу скопировать его в гораздо более длинную базу данных.

Итак, я бы получил кадр данных, подобный следующему: открытое изображение здесь

Здесь выможно найти заголовок кадра данных (3): Исходный кадр данных

1 Ответ

0 голосов
/ 06 декабря 2018

IIUC, попробуйте это:

def create_cols(df,num_dates):
    for col in list(df)[1:]:
        df['{}%'.format(col)] = - ((df['{}'.format(col)].shift(num_dates) - df['{}'.format(col)]) / df['{}'.format(col)].shift(num_dates)).shift(- num_dates)
    return df

create_cols(prices,251)

вам нужно будет только отформатировать столбцы в процентах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...