因此,我有一个包含数千行的DataFrame
包含人工外汇交易数据。前十行如下所示:
我想迭代这个集合,并为每一行计算CommonCurrency
,在本例中为USD。因此,对于每一行,我遍历CurrencyPair
、DeskRate
和OrderQty
列并计算CommonCurrency
:
for i in range(len(order_data)):
if (order_data['CurrencyPair'][i] == 'GBP/USD'):
order_data['CommonCurrency'][i] = order_data['DeskRate'][i] *
order_data['OrderQty'][i]
elif (order_data['CurrencyPair'][i] == 'AUD/USD'):
order_data['CommonCurrency'][i] = order_data['DeskRate'][i] *
order_data['OrderQty'][i]
elif (order_data['CurrencyPair'][i] == 'EUR/USD'):
order_data['CommonCurrency'][i] = order_data['DeskRate'][i] *
order_data['OrderQty'][i]
elif (order_data['CurrencyPair'][i] == 'USD/CHF'):
order_data['CommonCurrency'][i] = order_data['DeskRate'][i] /
order_data['OrderQty'][i]
elif (order_data['CurrencyPair'][i] == 'EUR/GBP'):
order_data['CommonCurrency'][i] = #different calculation
这似乎不是正确的做法,尤其是在存在大量不同货币对的情况下。我遇到的另一个问题是当我到达EUR/GBP
时,因为现在我必须从GBP/USD
和EUR/USD
获取DeskRate
,我看不出我如何使用这个方法
有什么提示吗
熊猫的一个有趣特征是indexing的概念。有更多类似python的方法可以做到这一点,但是使用
loc
,您可以使用series(columns)为数据帧的一部分赋值:从而避免任何
for
循环相关问题 更多 >
编程相关推荐