pandasデータフレームに適用できるカスタム関数を作成しようとしていて、ある通貨の金額を現地通貨の金額(DKK
)に前月の最終日(Pstng Date
のベース)。 たとえば、転記日付が2016-03-12の場合、2016-02-28の為替レートに従って金額を換算します。Pandasデータフレーム用のカスタム関数のForex_python
私は変換機能を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' object has no attribute 'strftime'
これにどのようにアプローチするか考えている人はいますか?異なるアプローチも非常に歓迎されています。
完全なエラーメッセージを投稿してください。 – DyZ