PYTHON:打开csv文件并在列中找到最大数量及其关联名称的最简单方法?

发布于 2021-01-29 17:10:04

我已经看过这份参考资料,所以请不要再参考我。

在Python的.CSV文件中查找最大数量。我努力将代码修改为自己的文档超过一个小时,但没有结果。从该代码中得到的最好结果是打印出最大值,而我得到了0,这是不正确的。我需要1)在F列中找到最大值(38,332,521)和2)打印出与最大值相关的状态(加利福尼亚州)。

这是我正在使用的csv:https//drive.google.com/open? id = 0B29hT1HI-pwxMjBPQWFYaWoyalE

这是我自己编写的代码,任何帮助/反馈将不胜感激!

def largestState(): 
    INPUT  = "statepopulations.csv"
    COLUMN = 5   # 6th column

    with open(INPUT, "rU") as csvFile:
        theFile  = csv.reader(csvFile)
        header = next(theFile, None)    # skip header row
        pop = [float(row[COLUMN]) for row in theFile]

    max_pop = max(pop)
    print max_pop

largestState()
关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    max功能应为您处理。在下面的代码中,我已经“读取”了CSV( 包含伪造的数据,但是您似乎掌握了该部分

    data = [
        ["California", 123456],
        ["Idaho", 123],
        ["Utah", 2]
    ]
    
    print max(data, key=lambda _: _[1])
    

    这产生 ['California', 123456]

    key=lambda _: _[1]告诉函数使用每个记录的第二值,人口在这种情况下,要检查最大。

    全部放在一起应该是这样的:

    def largestState():
        INPUT = "statepopulations.csv"
        COLUMN = 5
        with open(INPUT, "rU") as csvFile:
            data = csv.reader(csvFile)
            next(data, None)
        return max(data, key=lambda _: _[COLUMN])
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看