我在做一个股票市场分析项目。我试图找出过去5天的最高价格,最高价格当天的成交量,以及最高价格出现前的几天
我已经构建了一个解决方案,它使用了两个“for”循环,但是我想找到一种更有效的方法来编写代码,而不使用“for”循环。如有任何建议,将不胜感激
A1 = pd.merge(A, B, left_index = True, right_index = True)
A1["Date"] = A1.index
A1.reset_index(inplace = True)
### 5 Day High and Volume
Indexes = []
for index in range(len(A1.index) - 5):
M = 0
H = 0
for i in range(1,6):
if H < A1.iloc[i+index,2]:
H = A1.iloc[i+index,2]
M = i+index
Indexes.append(M)
Vol = pd.DataFrame(columns = ['B','C'])
Vol5 = []
DH5 = []
Z = []
count = 0
for i in Indexes:
Vol5.append(A1.iloc[i,1])
DH5.append(A1.iloc[i,2])
Z.append(count - i)
count += 1
for i in range(5):
Vol5.append(np.nan)
DH5.append(np.nan)
Z.append(np.nan)
Vol['B'] = Vol5
Vol.index = A1['Date']
Vol['C'] = DH5
Vol['D'] = Z
我建议使用
rolling
方法查找前5行计算的最大值的索引:然后查找与此最大值关联的卷(在本例中为
highest
列):相关问题 更多 >
编程相关推荐