我正在寻找有关如何使用Python数据框格式化某些行的帮助。本质上,我有两个文件,其中1的内容会影响另一个文件。因此,在我的示例中,我有
文件1和文件2
Currency,Shifts. NewCurrency,Value
EUR,1 EUR,0.5
USD,1.5 USD,1.5
ZAR,2 ZAR,10
[我的想法是我应该遍历文件2,当我找到相应的货币时,我将2列乘以文件1的移位,并生成一个结果如下的单个结果文件
NewCurrency,Value
EUR,0.5
USD,2.25
ZAR,20
这是我正在使用的代码
for i, row in df.iterrows():
newFX = float(row['SpotPriceVAL']) * float(multiplier)
df.at[i, 'SpotPriceVAL'] = newFX
scenario_file = 'fx.csv'
print (df.to_csv(scenario_file ,index=None, sep=',', mode='w'))
问题是,尽管移位乘数有效,但是由于所有输出都在同一个文件中,因此USD和EUR值被覆盖,因此我只处理最后一个条目。我只是不确定如何处理这种情况。任何帮助,将不胜感激。
喜欢这个:
In [1664]: df1
Out[1664]:
Currency Shifts
0 EUR 1.0
1 USD 1.5
2 ZAR 2.0
In [1665]: df2
Out[1665]:
Currency Shifts
0 EUR 0.5
1 USD 1.5
2 ZAR 10.0
In [1657]: p = pd.merge(df1, df2, on='Currency')
In [1658]: p['Shifts'] = p.Shifts_x * p.Shifts_y
In [1662]: p.drop(['Shifts_x', 'Shifts_y'], 1, inplace=True)
In [1663]: p
Out[1663]:
Currency Shifts
0 EUR 0.50
1 USD 2.25
2 ZAR 20.00