我有下面的多索引数据帧。在
Close ATR
Date Symbol
1990-01-01 A 24 2
1990-01-01 B 72 7
1990-01-01 C 40 3.4
1990-01-02 A 21 1.5
1990-01-02 B 65 6
1990-01-02 C 45 4.2
1990-01-03 A 19 2.5
1990-01-03 B 70 6.3
1990-01-03 C 51 5
我要计算三列:
Shares
=前一天的Equity
*0.02/ATR
,四舍五入到整数
Profit
=Shares
*Close
Equity
=前一天的Equity
+每个Symbol
的Profit
之和
Equity
的初始值为10000。在
预期产出为:
^{pr2}$我想我需要一个for loop
或一个function
应用于每一行。关于这些,我有两个问题。一个是我不确定如何在MultiIndex
数据帧的情况下为这个逻辑创建for loop
。第二个原因是我的数据帧非常大(大约1000万行),所以我不确定for loop
是否是个好主意。但是如何创建这些列呢?在
你能试试使用shift和groupby吗?一旦前一行的所有操作都是直行。在
这个解决方案当然可以清理,但会产生您想要的输出。我已经在示例数据帧的构造中包含了您的初始条件:
给出:
^{pr2}$然后使用}。我花了一点时间才意识到这个问题的本质要求您分别在两个独立的列上分组(}):
groupby()
和apply()
并全局跟踪您的{Symbol
和{这就产生了:
相关问题 更多 >
编程相关推荐