gpt4 book ai didi

python - 使用 Python 将雅虎财经的历史股票价格转换为不同的货币

转载 作者:行者123 更新时间:2023-12-04 08:08:22 24 4
gpt4 key购买 nike

我正在尝试将非欧元上市公司的历史股价调整为欧元。因此,我想将 Apple 的股价转换为欧元。我已经刮掉了历史汇率以及历史调整后的股票价格。我现在有两个数据框,第一个数据框显示股票的货币和股票价格。我在我的投资组合中使用了多只股票。我这样做是通过使用以下代码:

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。
理想的情况是拥有一个仅包含日期和股票价格的新数据框(以欧元计)。

最佳答案

上一个答案在代码中有一个错误。
这一行:

stock_df = pd.concat([stock_df, data], axis=0)
应该缩进到与 if 和 elif 语句相同的级别,否则最后一个循环的结果总是会覆盖前一个循环。
编辑2:
答案中的另一个问题是汇率应该乘以原始货币的价格而不是除以......换句话说,循环应该这样做:
data['price'] = data['Close'] * data['rating']

关于python - 使用 Python 将雅虎财经的历史股票价格转换为不同的货币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66107523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com