1
他の列のシフト値から計算された値を含む新しい列を作成したいと思います。パンダシフト計算の計算
以下のコードを見ると、最初に時系列データを作成しました。
「価格」はランダムに生成された時系列データであり、運動量は最近の12期間の平均運動量値です。
平均 'n'拍動値のデータを含む新しい列を追加したいと思います。ここでnはdf ['shift']の値に対応し、拍動関数の固定値12ではありません「シフト」列の値を使用します。
どうすればいいですか?
(以下の例では、運動量は一定の12で計算した)
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