如何创建一个数据框,其中第一个单元格与后续单元格具有不同的pandas公式?
从上面可以看出,Ave Gain的第一个单元格只是前两个增益的平均值:(1.84 + 0)/ 2 = 0.92。类似地,对于Ave Loss的第一个单元:(0.07 + 0)/ 2 = 0.035
然而,Ave Gain的第二个单元是先前的Ave Gain(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创建一个递归表(它使用自己以前的值来计算下一个值)
谢谢
答案 0 :(得分:0)
似乎原始方式无法正常工作,所以我更新了这个答案。它的工作方式实际上比第一个更简单,更合乎逻辑。
<强> CODE 强>:
print(link?.absoluteString ?? "") /*www.XYZ.com/2018/02/01/thumbnails/Source-01-February-2018-20:00.jpg*/
<强>输出强>:
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
,您可以引用list-comprehension中元素的索引,它允许随时引用enumeration
元素的子列表,并对该列表进行计算以模拟先前的值行。
以下问题的一些答案用于实现此目的:
Adding calculated column(s) to a dataframe in pandas
Getting index of item while processing a list using map in python