如何使用python中的map reduce函数来确定值?

ukxgm1gy  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(376)

下面是你在杂货店可能找到的食物的数据列表。下面的csv文件表示城市、食物类型、每磅的平均价格,以及加利福尼亚州某个城市的食物消费量。我需要使用python中的map reduce函数来确定哪种食物每磅的总价格最低。

Los Angeles,Vegetables,25.51,Breakfast
San Francisco,Fruits,259.32,Breakfast
Sandiego,Meat,22.94,Lunch
Sacramento,Dairy,53.71,Dinner
San Jose,Fish,44.16,Snack
Fresno,Poultry,393.05,Brunch
Oakland,Vegetables,15.99,Dinner
Bakersfield,Nuts,201.46,Dinner
Long Beach,Poultry,74.6,Snack
Anaheim,Grains,89.6,Breakfast
Riverside,Meat,152.75,Brunch
Irvine,Poultry,88.99,Brunch
Santa Barbara,Dairy,241.26,Lunch
Pasadena,Beans,789.7,Snack

这是我到目前为止的情况。任何帮助都将不胜感激。

from mrjob.job import MRJob

class LowestPrice(MRJob):

    def mapper(self, _, line):
        line_cols = line.split(',')
        yield line_cols[1], 1

if __name__ == '__main__':
    LowestPrice.run()
1rhkuytd

1rhkuytd1#

你可以用Pandas来做这个

import pandas as pd

data = pd.read_csv('/Users/shrek/Documents/data.csv', header=None)

print(data[2].min())
index = data[data[2]== data[2].min()].index[0]
print(data[1][index]+"in "+data[0][index]+" used in "+data[3][index]+" has lowest price per pound = "+str(data[2].min()))

输出为:

Vegetablesin Oakland used in Dinner has lowest price per pound = 15.99

相关问题