Numpy Лямбда-функция работает не так, как ожидалось - PullRequest
0 голосов
/ 29 мая 2020

market ['AAPL'] - это фреймворк с ежедневной доходностью акций Apple

Я заметил, что:

market['AAPL'].apply(lambda x: np.exp(x))

market['AAPL'].apply(lambda x: np.cumprod(np.exp(x)))

Оба дают одинаковые результаты. Почему np.cumprod не работает?

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

Вы, вероятно, имеете в виду применить совокупный продукт по столбцу AAPL. Ваша текущая попытка не работает, потому что .apply работает для каждой строки. В результате np.cumprod вызывается каждый раз для одного числа, а не для массива чисел.

Вместо этого попробуйте что-то вроде этого:

import pandas as pd
import numpy as np

aapl = {"AAPL": np.linspace(1, 2, 10)}
df = pd.DataFrame(appl)
# Calculate exp for the column, then calculate 
# the cumulative product over the column
df['cum-AAPL'] = np.exp(df['AAPL']).cumprod())
0 голосов
/ 29 мая 2020

Поскольку x - это число, это np.exp - это число, а произведение одного числа является самим собой.

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