[英]Pandas for recursive data
如何創建第一個單元格與后續單元格具有不同熊貓公式的數據框?
從上面可以看出,Ave Gain的第一個單元只是前兩個增益的平均值:(1.84 + 0)/ 2 = 0.92。 對於Ave Loss的第一個像元類似:(0.07 + 0)/ 2 = 0.035
但是,平均收益的第二個單元是先前的平均收益(0.92)+新的收益(1.62)除以2:(0.92 + 1.62)/ 2 = 1.27
而第三個像元是先前的Ave Gain(1.27)+新的增益(1.61)除以2 ::((1.27 + 1.61)/ 2 = 1.44
1)我應該如何創建第一個單元格與后續單元格具有不同公式的數據框?
2)我如何為Ave Gain創建一個遞歸表(它使用自己的上一個值來計算下一個值)
謝謝
看來原來的方法無法正常工作,所以我更新了此答案。 而且它的工作方式實際上比第一個更簡單,更合乎邏輯。
代碼 :
import pandas as pd
x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a=pd.DataFrame(x)
a['Avg'] = [0 for m in x]
a['Avg'] = [sum(a[:i+1][0])/(i+1) for i, m in enumerate(a[0])]
print(a)
輸出 :
0 Avg
0 1 1.0
1 2 1.5
2 3 2.0
3 4 2.5
4 5 3.0
5 6 3.5
6 7 4.0
7 8 4.5
8 9 5.0
9 10 5.5
由於它的工作方式與循環不同,因此,當您為當前行的計算值時,不能在上一行中引用值,因此它不存在。 因此,您需要將計算完全基於所擁有的數據。 使用enumeration
您可以在列表理解中引用元素的索引,該索引可以隨時引用:i+1
元素的子列表,並可以對該列表進行計算以模擬上一行的值。
用於實現此目的的以下問題的一些答案:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.