【发布时间】:2019-11-03 17:04:03
【问题描述】:
我有两个数据框,即 df 和 df1。我对数据框 df 的货币转换感兴趣。 在 df 数据框中,我们有 6 列。第一列是日期,其余是各个日期的货币值。我想将这些货币转换成正确的格式。在数据框 df1 我有 2 列,第一列是货币,第二列是运算符。
我有兴趣将相应的运算符应用于 df 的货币值。 例如,在 df 我们有第二列,即“AUD”,我想将所有“AUD”值转换为正确的格式 表示乘以或除以数据帧 df1 中的相应“运算符”列。 这里“AUD”有“乘”运算符,因此所有值都乘以 1。对于“CAD”,应该除以“CAD”列中的 1/“CAD”值。
import pandas as pd
data = {'Date':['01-01-2019', '01-01-2019', '01-01-2019', '01-01-2019','01-01-2019'],
'AUD':[98, 98.5, 99, 99.5, 97],
'BWP':[30,31,33,32,31],
'CAD':[50,52,51,51,52],
'BND':[1.01,1.05,1.03,1.02,1.03],
'COP':[20,21,23,21,22]}
df = pd.DataFrame(data)
data1 = {'currency':['DZD', 'AUD', 'CNY', 'BND','BRL','BWP','CAD','COP'],
'operator':['divide', 'multiply', 'divide', 'divide','divide','multiply','divide','divide'],
}
df1 = pd.DataFrame(data1)
df
Date AUD BWP CAD BND COP
0 01-01-2019 98.0 30 50 1.01 20
1 02-01-2019 98.5 31 52 1.05 21
2 03-01-2019 99.0 33 51 1.03 23
3 04-01-2019 99.5 32 51 1.02 21
4 05-01-2019 97.0 31 52 1.03 22
df1
currency code operator
0 DZD divide
1 AUD multiply
2 CNY divide
3 BND divide
4 BRL divide
5 BWP multiply
6 CAD divide
7 COP divide
预期输出:
Date AUD BWP CAD BND COP
0 01-01-2019 98.0 30 0.0200 0.990 0.050
1 02-01-2019 98.5 31 0.0192 0.952 0.047
2 03-01-2019 99.0 33 0.0196 0.970 0.043
3 04-01-2019 99.5 32 0.0196 0.980 20.047
4 05-01-2019 97.0 31 0.0192 0.970 0.045
【问题讨论】: