【发布时间】:2017-08-13 12:50:00
【问题描述】:
我正在尝试构建一个自定义函数,该函数可以应用于 pandas 数据框,并根据前一天最后一天的汇率将某种货币的金额转换为我当地货币的金额(DKK)月(以Pstng Date 为基数)。
比如,如果过帐日期是 2016-03-12,我想按照 2016-02-28 的汇率换算金额。
我正在使用带有转换功能的 forex-python 库 - 这是我的数据框:
df = pd.DataFrame({
'Crcy': ['DKK','CAD','GBP','USD'],
'Pstng Date': ['2017-01-12','2015-12-15','2016-06-06','2017-08-12'],
'Amount': [100,5000,40,50]
})
这是我的功能:
from forex_python.converter import CurrencyRates
c = CurrencyRates()
def convert_rates2(amount,currency,PstngDate):
if currency != 'DKK':
return c.convert(base_cur=currency,dest_cur='DKK',amount=amount \
,date_obj=PstngDate - datetime.timedelta(PstngDate.strftime('%d')))
else:
return amount
我尝试将其应用于 df 的方式:
df['Amount, DKK'] = np.vectorize(convert_rates2)(
amount=df['Amount'],
currency=df['Crcy'],
PstngDate=df['Pstng Date']
)
但是,我收到以下错误:
AttributeError: 'str' 对象没有属性 'strftime'
有人知道如何解决这个问题吗?不同的方法也非常受欢迎。
【问题讨论】:
-
请发布完整的错误信息。
标签: python pandas numpy currency forex