Python Pandas Среднее значение для данных и стандартное значение только для двух значений - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть следующий код:

symbol = "WALMEX"
result = webscrapertable(url)
datafr = pd.DataFrame(result, columns = ["Fecha", "Price", "Open", "High", "Low", "Vol","Vol%"])
datafr = datafr.dropna()
datafr = datafr.set_index("Fecha")
print(datafr)
datafr = datafr[["Open"]]
datafr = datafr.astype(float)

Это означает следующее:

                Open
Fecha
Apr 22, 2020  56.29
Apr 21, 2020  57.36
Apr 20, 2020  57.89
Apr 17, 2020  55.44
Apr 16, 2020  54.44
Apr 15, 2020  55.49
Apr 14, 2020  57.31
Apr 13, 2020  56.43
Apr 08, 2020  55.53
Apr 07, 2020  55.61
Apr 06, 2020  55.77
Apr 03, 2020  55.57
Apr 02, 2020  56.29
Apr 01, 2020  54.96
Mar 31, 2020  55.29
Mar 30, 2020  53.00
Mar 27, 2020  52.62
Mar 26, 2020  55.33
Mar 25, 2020  53.46
Mar 24, 2020  51.80
Mar 23, 2020  51.70

Где Open размещен правильно, я не знаю, почему он перемещается сюда, но что бы то ни было

При этом. выводит следующее.

sma = datafr.rolling(window = 20).mean()

Apr 22, 2020      NaN
Apr 21, 2020      NaN
Apr 20, 2020      NaN
Apr 17, 2020      NaN
Apr 16, 2020      NaN
Apr 15, 2020      NaN
Apr 14, 2020      NaN
Apr 13, 2020      NaN
Apr 08, 2020      NaN
Apr 07, 2020      NaN
Apr 06, 2020      NaN
Apr 03, 2020      NaN
Apr 02, 2020      NaN
Apr 01, 2020      NaN
Mar 31, 2020      NaN
Mar 30, 2020      NaN
Mar 27, 2020      NaN
Mar 26, 2020      NaN
Mar 25, 2020      NaN
Mar 24, 2020  55.2940
Mar 23, 2020  55.0645

Что я даже делаю не так, данные поступают из красивого супа, но насколько я знаю, они правильно преобразованы в массив pandas.

1 Ответ

0 голосов
/ 23 апреля 2020

Rolling (n) использует предыдущие N элементов для вычисления значения для данного индекса. Поскольку размер вашего окна настолько велик, только последние 2 записи имеют 20 предыдущих записей для расчета скользящего среднего

...