这里是Pandas新手(也是数据科学新手)。
我正在尝试将当前的当地货币转换为当前的美元,这将涉及将每个数据点乘以相应的汇率。数据结构如下所示:
import pandas as pd
dataset = pd.DataFrame([
["CNY", 321.4, 123.3, 2131, 2134],
["EUR", 2144, 3521, 3152, 6421],
["CNY", 9999, 1234, 96, 879]],
columns=["Currency", 2000, 2001, 2002, 2003])
rates = pd.DataFrame([
["CNY", 6.1, 6.8, 7.4, 5.8],
["EUR", 1.1, 1.0, 2.5, 3.1]],
columns=["Currency", 2000, 2001, 2002, 2003])
我想乘以年值,即在货币代码匹配的条件下,将列“2000”、“2001”、“2002”和“2003”下的数据与相应的兑换值进行比较。
我见过一个使用where()
函数的answer on a similar subject。我有一种感觉,这是要走的路,但在那个例子中,这个人有两个相同维度的 Dataframe ,所以它是用一个简单的乘法完成的。我的汇率数据框与实际数据表的维度不同,其中一些货币出现多次。我想通过迭代数据集来强制执行它,但这很糟糕。我还怀疑我可能可以沿着自然连接的路线做一些事情,但不幸的是,我对数据科学的了解还不够。
编辑:原来的代码是错误的,因为我不知道如何使用构造函数。我修改了代码下面的注解。
1条答案
按热度按时间t3irkdon1#
假设输入为此,使用货币作为索引:
.reset_index()
再次设置“Currency”作为列,但最好将其保留为索引。*输出:
或者:
输出:
您也可以使用左合并来对齐费率: