【发布时间】:2021-02-08 18:45:37
【问题描述】:
我正在尝试将非欧元上市公司的历史股价调整为欧元。因此,我想将苹果的股价转换为欧元。我已经刮掉了历史汇率以及历史调整后的股价。我现在有两个数据框,第一个数据框显示股票的货币和股票价格。我将多只股票用于我的投资组合。我通过使用以下代码来做到这一点:
assets = ["^AEX", "AAPL", "AZN.L", "AD.AS ", "ASML.AS"]
.
^AEX AAPL AZN.L AD.AS ASML.AS idx
EUR USD GBP EUR EUR currency
2021-02-02 00:00:00 652.87 134.789 51.46 23.54 457.5 NaN
2021-02-03 00:00:00 654.89 133.74 51.42 23.6 457.15 NaN
2021-02-04 00:00:00 654.38 137.185 50.84 23.46 459.55 NaN
2021-02-05 00:00:00 653.24 136.76 51 23.35 460 NaN
2021-02-08 00:00:00 656.39 135.942 51.48 23.3 467.1 NaN
第二个数据框显示历史汇率数据。
Currency code Currency name Units per EUR EUR per Unit Date
0 0 USD US Dollar 1.320339 0.757381 2021-02-03
1 1 EUR Euro 1.000000 1.000000 2021-02-03
2 2 GBP British Pound 0.812044 1.231461 2021-02-03
3 3 INR Indian Rupee 72.359647 0.013820 2021-02-03
4 4 AUD Australian Dollar 1.269889 0.787470 2021-02-03
现在的想法是合并两个框架,并以欧元显示股票价格。我认为我们必须将两个日期都放在合并的数据框中。
我们需要一个 for 循环来识别股票是否不是欧元,在日期中搜索匹配项,在货币代码中搜索匹配项,如果货币代码是美元,则将股票乘以 0.757381 (如果数据框 1 中的库存日期为 2012-02-03)。
如果股票是欧元,我们可以乘*1。如果股票价格以英镑为例,则乘以 *1.231461。
理想的情况是有一个新的数据框,其中只有日期和欧元股票价格。
【问题讨论】: