我为某些交易策略创建了这个嵌套字典,例如:
{'Strategy1' :{'AAPL':'Strategy1_APPLE', 'MSFT':'Strategy1_MICROSOFT'}, 'Strategy2' :{'AAPL': 'Strategy2_APPLE', 'MSFT':'Strategy2_MICROSOFT'}}
Run Code Online (Sandbox Code Playgroud)
我已经构建了一个数据框,其中包含属于策略 1 或策略 2 的交易列表,并用该信息制作了一个专栏。然后我想做的是将字典中的值映射到基于顶级键(即策略1或策略2)和嵌套键(即AAPL或MSFT)的新列。这样,每笔交易都在数据框的同一行中附有正确的策略和股票代码。
因此,数据框中包含 Strategy1 和 AAPL 的行在新列中获得 Strategy1_APPLE 值,但 Strategy2 和 AAPL 获得 Strategy2_APPLE。
我一直在使用 map() 和一堆 lambda 函数,但我无法让它工作。我认为这是可能的,不需要做一堆丑陋的循环和 if 语句,我真的可以使用一些关于如何在这里做到这一点的帮助。
编辑:示例
所以目前看起来像这样
ticker Strategies
1 AAPL Strategy1
2 MSFT Strategy1
3 MSFT Strategy2
4 AAPL Strategy1
5 MSFT Strategy2
Run Code Online (Sandbox Code Playgroud)
想要的结果是这样的
ticker Strategies substrategy
1 AAPL Strategy1 Strategy1_APPLE
2 MSFT Strategy1 Strategy1_MICROSOFT
3 MSFT Strategy2 Strategy2_MICROSOFT
4 AAPL Strategy1 Strategy1_APPLE
5 MSFT Strategy2 Strategy2_MICROSOFT
Run Code Online (Sandbox Code Playgroud)
请注意,连接字符串或类似的东西对我的实际问题不起作用,因为基底名称要复杂得多