【发布时间】:2015-10-21 10:02:48
【问题描述】:
我是 python 新手,我有一个无法解决的问题。所以,我需要你的帮助。 我有一个包含两列的数据框 df:Close_M 和 Close_AA。 关键是,我想像这样计算两个新列 Resultat_M 和 Resultat_AA:
for i in symbol_list:
df['Result'+'_'+i] = (df['Close'+'_'+i] / df ['Close'+'_'+i].shift(1) ) * df['Result'+'_'+i].shift(1)`
我想将 Resultat 列的值初始化为 100。
输入数据框:
Close_M
10
5
12
14
Close_AA
8
9
10
7
预期输出数据帧:
Resultat_M
100
50
120
140
Resultat_AA
100
112,5
125
87,5
例如 Resultat_M, 50=(5/10)*100 ; 120 = (12/5)*50;
但是我的代码不起作用。你知道如何做到这一点吗? 谢谢
更正后,我有同样的错误:
当我运行你在回答中给我的代码时的输出:
我拥有的输出数据框:
Resultat_AA
Nan
112,5
111,11
70
Resultat_M
Nan
50
240
116,6666667
为什么我没有预期的结果?我认为除法后,它将每行乘以 100,而不是乘以我想要的先前计算的值。
【问题讨论】:
标签: python pandas calculated-columns shift