数据帧包含库存数据(数据帧中的数据不相关且省略(:
open high low close
MSFT
APPL
IBM
GM
XP
INTC
问题:选择3只股票的组合,这样
- 顺序并不重要:如果已经计算了MSFT/APPL/IBM,那么IBM/MMSFT/APPL是多余的
- 组合不能有重复项:不能有MSFT/MSFT/APPL
例如,如果一次只选择两种股票,则选择带有";X〃;在下面这可以扩展到三维。
MSFT APPL IBM GM XP INTC
MSFT
APPL X
IBM X X
GM X X X
XP X X X X
INTC X X X X X
我可以用一种非Python的方式(3个嵌套循环(来实现这一点,但我正在寻找更好的解决方案。
不将整个多维数据集保存在内存中的解决方案是必要的。数据集很大,只保留累积结果,而不保留组合或其结果。
您可以使用itertools.combination
。它非常有用,速度快,并且满足了您的两个要求。
from itertools import combinations
stocks = ['MSFT','APPL','IBM','GM','XP','INTC']
list(combinations(iterable=stocks, r=2))
则按预期修改CCD_ 2参数(组合的长度(。