Мне нужна помощь при выводе метода оплаты, который имел наименьшую сумму общего дохода (суммы) для продаж.Прямо сейчас код выводит общую сумму для всех способов оплаты (Visa, Mastercard, Discover и т. Д.), Но мне нужно, чтобы он выводил только тот метод оплаты, который имел наименьшую сумму.
У меня естья уже собрал все способы оплаты и рассчитал сумму для каждого из них, у меня просто возникают проблемы с тем, как ограничить вывод, чтобы показывать только тот, который имел наименьшую сумму.
"""
Python script to find the total amount of sales revenue for each payment mode
using Map-Reduce framework (mapper, combiner, and reducer functions) with mrjob package
"""
from mrjob.job import MRJob
class ModeRevenue(MRJob):
# each input lines consists of city, productCategory, price, and paymentMode
# Initialize the count value
count = 0
def mapper(self, _, line):
# create a key-value pair with key: paymentMode and value: price
line_cols = line.split(',')
yield line_cols[3], float(line_cols[2])
def combiner(self, mode, counts):
# consolidates all key-value pairs of mapper function (performed at mapper nodes)
yield mode, sum(counts)
def reducer(self, mode, counts):
# final consolidation of key-value pairs at reducer nodes
self.count += 1
if self.count <= 5:
yield mode, '${:,.2f}'.format(sum(counts))
if __name__ == '__main__':
ModeRevenue.run()
Мне нужноВывод будет одним способом оплаты, который будет самым низким по доходу вместо всех.
Ожидаемый:
"Discover" "$24,922,765.13"
Фактический:
"Amex" "$25,027,699.58"
"Cash" "$25,030,603.02"
"Discover" "$24,922,765.13"
"MasterCard" "$24,952,916.42"
"Visa" "$25,121,673.01"