from analysis.market_snapshot import Market, available_date_ranges class IndexMM: def __init__(self): self.name = 'indexmm' self.date = None self.data = None def calculate(self, market): self.market = market self.date = self.market.end_date self.data = market.get_market_data() data_coche_pequeno = {'count': self.data[self.data['tamano_categorico'] == 'coche pequeño'].count(), 'mean': self.data[self.data['tamano_categorico' == 'coche pequeño']]['precio'].transform('mean')} data_coche_grande = {'count': self.data[self.data['tamano_categorico'] == 'coche grande'].count(), 'mean': self.data[self.data['tamano_categorico' == 'coche grande']]['precio'].transform('mean')} data_coche_moto = {'count': self.data[self.data['tamano_categorico'] == 'coche y moto'].count(), 'mean': self.data[self.data['tamano_categorico' == 'coche y moto']]['precio'].transform('mean')} self.value = (((data_coche_grande['count'] * data_coche_grande['mean']) + (data_coche_moto['count'] * data_coche_moto['mean']) + (data_coche_pequeno['count'] * data_coche_pequeno['mean'])) / (data_coche_grande['count'] + data_coche_moto['count'] + data_coche_pequeno['count'])) #SEGUIR AQUI def get_data(self): return {'name': self.name, 'date': self.date, 'value': self.value}