Накопленная строка рассылки

#python #pandas

#python #панды

Вопрос:

Я пытаюсь немного изучить python и в настоящее время делаю несколько примеров на фондовом рынке. Однако я наткнулся на нечто, называемое накопленной линией распределения (технический индикатор), и попытался следовать математическому выражению для этого, пока не дошел до следующей строки:

ADL [i] = ADL [i-1] объем денежного потока [i]

Теперь. У меня есть объем денежных потоков с индексом 8 и пустая таблица для ADL с индексом 9 (индекс для строк в файле csv). Как бы мне на самом деле вычислить математическое выражение, приведенное выше, в python? (В настоящее время используется Python с Pandas)

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

 for i in range(1,stock["Money flow volume"])):

               stock.iloc[0,9] = stock.iloc[(i-1),9]   stock.iloc[i,8]
 

Но я думаю, что я делаю что-то не так.

Ответ №1:

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

 import pandas as pd

df = pd.DataFrame(dict(mfv=range(10)))
df['adl'] = df['mfv'].cumsum()
 

должен делать то, что вы хотите, относительно эффективно

Комментарии:

1. На случай, если вы не знали, почти все технические индикаторы встроены в модули, которые вы можете импортировать. github.com/twopirllc/pandas-ta Но если вы пытаетесь выучить python на практике, то саморазвитие — достойное дело.

2. он автоматически выполняется по всей серии, поэтому нет необходимости помещать его в for цикл. попробуйте распечатать df в моем коде до и после cumsum . запуск кода в IPython или записной книжке Jupyter может помочь понять, что происходит