我想在我的数据框架上同时将单个移动平均线应用于不同的收盘价。
Open Close ... High Low
AUDUSD=X EURUSD=X GBPUSD=X NZDUSD=X USDCAD=X USDCHF=X USDJPY=X AUDUSD=X EURUSD=X GBPUSD=X ... USDCAD=X USDCHF=X USDJPY=X AUDUSD=X EURUSD=X GBPUSD=X NZDUSD=X USDCAD=X USDCHF=X USDJPY=X
Date
2019-01-02 0.704722 1.146132 1.275234 0.671362 1.36250 0.98180 109.660004 0.704791 1.146171 1.275429 ... 1.36596 0.98925 109.674004 0.698470 1.134572 1.258463 0.666298 1.35690 0.9794 108.730003
2019-01-03 0.692008 1.131734 1.251878 0.663398 1.36300 0.98916 107.449997 0.691898 1.131811 1.252191 ... 1.36440 0.98977 108.271004 0.691946 1.131734 1.251878 0.661559 1.34736 0.9845 106.776001
2019-01-04 0.700722 1.139095 1.262897 0.668852 1.34760 0.98726 107.865997 0.700624 1.139108 1.262881 ... 1.34906 0.99068 108.583000 0.699496 1.134816 1.261782 0.667361 1.33814 0.9852 107.513000
2019-01-07 0.712606 1.141292 1.273285 0.674450 1.33689 0.98577 108.488998 0.712378 1.141044 1.273496 ... 1.33760 0.98577 108.625000 0.711551 1.140524 1.272426 0.673179 1.32882 0.9789 108.036003
2019-01-08 0.714602 1.147934 1.278691 0.675548 1.32967 0.97929 108.642998 0.714592 1.147974 1.278609 ... 1.33190 0.98333 109.077003 0.711789 1.142465 1.271488 0.670979 1.32670 0.9788 108.449997
forex_data_1['Moving average'] = forex_data_1['Close'].rolling(window=30).mean()
ValueError:无法将具有多列的 DataFrame 设置为单列移动平均值
关于 df(滚动、平均)的属性通常有效。 问题是你的 df 本身,看来你没有正确解决它。 我猜,forex_data_1['Close'] 没有列。为了进行更深入的分析,您必须以更易读的方式发布数据框。正如@Thokozani 所提到的,如果没有这个,就不可能分析你的错误。
这对我来说效果很好:
import pandas as pd
df=pd.DataFrame({'A':[1.2,1.3,1.4,1.5,7],'B':[2,3,4,5,6]})
df['rollmean'] = df['A'].rolling(window=2).mean()