1
我想創建一個新列,其中包含從其他列中的移位值計算出的值。大熊貓移位值計算
正如你看到下面的代碼,首先我創建了一個時間序列數據。
'價格'是隨機產生的時間序列數據,動量是最近12個週期的平均動量值。
我想添加一個新列,其中包含具有平均'n'動量值的數據,其中'n'對應於df ['shift']的值,而不是動量函數中的固定12值,但是在'shift'列中具有值。
我該怎麼做?
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.uniform(low=0.8, high=1.3, size=100).cumprod(),columns = ['price'])
df['shift'] = np.random.randint(5, size=100)+3
df
def momentum(x):
init = 0
for i in range(1, 13):
init = x.price/x.price.shift(i) + init
return init/12
df['momentum'] = momentum(df)
price shift momentum
0 1.069857 3 NaN
1 0.986563 7 NaN
2 0.809052 5 NaN
3 0.991204 3 NaN
4 0.846159 6 NaN
5 0.717344 4 NaN
6 0.599436 3 NaN
7 0.596711 7 NaN
8 0.543450 4 NaN
9 0.511640 3 NaN
10 0.496865 3 NaN
11 0.460142 4 NaN
12 0.435862 4 0.657192
13 0.410519 4 0.665493
14 0.368428 5 0.640927
15 0.335583 7 0.625128
16 0.313470 7 0.635423
17 0.321265 4 0.704990
18 0.319503 7 0.746885
19 0.365991 4 0.900135
20 0.300793 4 0.766266
21 0.274449 6 0.733104
這是否解決您的問題? – DJK