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

标签 python hadoop mapreduce mrjob

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

最佳答案

你可以为此使用 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

关于python - 如何使用Python中的map reduce函数确定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59042518/

相关文章:

hadoop - 作业提交失败,异常 'org.apache.hadoop.util.DiskChecker$DiskErrorException(No space available in any of the local directories.)'

hadoop - 同步 Ambari 集群配置

hadoop - 简单 Yarn 应用程序的 NoClassDefFoundError

Python:如何使用存储在变量中的值?

python - 使用 dateutil 将 'month-day' 格式正确转换为 'month-day-year' 格式

python - 挤压网络问题

python - Python 编程的新手,有人可以解释一下这个程序的错误吗?

azure - 如何保护 Azure Key Vault 中的 Blob 存储访问 key

hadoop - MapReduce 洗牌/排序方法

python - 如何让 AppEngine map reduce 横向扩展?