繁体   English   中英

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

[英]How do I use the map reduce function in Python to determine a value?

以下是您可能在杂货店找到的食品数据列表。 下面的 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()

您可以为此使用熊猫

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM