我不知道.rolling()
的确切值,因此我需要根据另一列df.candle
的值来计算它。因此,我想计算当前行与df.candle = (df.candle[current_iteration] - 20)[0]
行之间的索引差(所以后面有20根蜡烛,并且第一次迭代(有多个蜡烛值相同的行,所以[0])
所以我虽然这样应该可以工作:
import pandas as pd
df = pd.read_csv('https://www.dropbox.com/s/hy94jp4d7qwmv04/eurusd_df1.csv?dl=1')
df.reset_index(inplace=True)
# pandas settings
pd.set_option('display.max_columns', 320)
pd.set_option('display.max_rows', 1320)
pd.set_option('display.width', 320)
#
a = df.index[df.candle == df.candle - 20][0]
df['test'] = df.bid.rolling(int(a)).mean()
但是它实际上给出了一个错误:
IndexError: index 0 is out of bounds for axis 0 with size 0
所以我在这里有点迷路了...
编辑:也许是一个更好更简短的解释:https://www.reddit.com/r/learnpython/comments/b5o8o5/pandas_rolling_with_some_calculations_inside/