Я пытаюсь попрактиковаться в занятиях на питоне, пытаясь создать класс, который нормализует валюту ко всем фунтам, используя таблицу курсов обмена.Я не уверен, почему я получаю ошибку ниже.CurrencyCombo - это имя столбца в таблице exchnagerate, которое я передаю в init как «CurrencyPairCol»
rateList = ['EURGBP','USDGBP', 'SEKGBP']
Month = ['2018-11', '2018-12', '2019-01', '2019-02', '2019-03']
class CurrencyNormalize():
def __init__(self,filename,rateList,monthList,orders_filename,CurrencyPair):
self.ExchangeRate = pd.read_csv(filename)
self.OrdersTrain = pd.read_csv(orders_filename)
self.rateList=rateList
self.monthList=monthList
self.currencyPairCol=self.ExchangeRate[CurrencyPair]
def remove_char(self):
return (self.replace('GBP', ''))
def normalize(self):
ExchangeRateFilt= self.ExchangeRate[self.ExchangeRate.CurrencyCombo.isin(self.rateList)]
monthOnly= ExchangeRateFilt[ExchangeRateFilt.TradeMonth.isin(self.monthList)]
print(monthOnly['CurrencyCombo'])
monthOnly['CurrencyCombo] = monthOnly['CurrencyCombo].apply(self.remove_char())
Я хочу применить функцию remove_char в функции нормализации, но я не уверен, что я это делаюнеправильно.Когда я запускаю вышеизложенное следующим образом:
CurrencyNormalize('MonthlyExchangeRates.csv',rateList,Month,'Orderss.csv','CurrencyCombo').normalize()
Я получаю следующую ошибку:
AttributeError: 'CurrencyNormalize' object has no attribute 'replace'
Я думаю, что ошибка связана с тем, как я применяю функцию remove_char, прежде чем япопробовал ООП способ, которым функция была:
def remove_char(col):#
return (col.replace('GBP', ''))
, и я назвал бы это как:
ExchangeRate['CurrencyCombo'].apply(remove_char)
, где Обменный курс - df.Как мне обобщить функцию remove_char внутри класса?