我试图找出 .csv 文件的最大值和最小值,但我无法弄清楚我做错了啥

Posted

技术标签:

【中文标题】我试图找出 .csv 文件的最大值和最小值,但我无法弄清楚我做错了啥【英文标题】:Im trying to figure out the max and min of a .csv file and i cant figure out what im doing wrong我试图找出 .csv 文件的最大值和最小值,但我无法弄清楚我做错了什么 【发布时间】:2021-12-07 21:17:19 【问题描述】:

以下是 .csv 文件中的内容示例: 实体、代码、年份、预期寿命(年) 阿富汗,AFG,1950,27.638 阿富汗,AFG,1951,27.878 阿富汗,AFG,1952,28.361 阿富汗,AFG,1953,28.852 阿富汗,AFG,1954,29.35 阿富汗,AFG,1955,29.854 阿富汗,AFG,1956,30.365 阿富汗,AFG,1957,30.882 阿富汗,AFG,1958,31.403 阿富汗,AFG,1959,31.925 阿富汗,AFG,1960,32.446 阿富汗,AFG,1961,32.962 阿富汗,AFG,1962,33.471 阿富汗,AFG,1963,33.971 阿富汗,AFG,1964,34.463 阿富汗,AFG,1965,34.948 阿富汗,AFG,1966,35.43 阿富汗,AFG,1967,35.914 阿富汗,AFG,1968,36.403 阿富汗,AFG,1969,36.9 阿富汗,AFG,1970,37.409 阿富汗,AFG,1971,37.93 阿富汗,AFG,1972,38.461 阿富汗,AFG,1973,39.003 阿富汗,AFG,1974,39.558 阿富汗,AFG,1975,40.128 阿富汗,AFG,1976,40.715 阿富汗,AFG,1977,41.32

【问题讨论】:

请将您的代码发布为测试而不是图像。 需要发布代码而不是图片 【参考方案1】:

您正在运行一个 for 循环,然后将每一行以列表的形式存储在数据变量中。 因此, max(expectancy) 在您的情况下没有任何作用。 max 在 python 中的工作方式是 max(a,b) 返回 a 和 b 中的最大值。

无论如何,对于您的问题。 将 excel 文件存储到数据框中。

import pandas as pd

df = pd.read_csv ('file_name.csv')

现在 df 包含带有您的 csv 内容的数据框。

要找到最大值,你可以做的是:

df.nlargest(1, 'Life expectancy')

//这里的“预期寿命”是 csv 中的列名。

同样适用于最小的,

df.nsmallest(1, 'Life expectancy')

//这里的“预期寿命”是 csv 中的列名

【讨论】:

【参考方案2】:

您的示例数据可能与问题中显示的方式不同。我希望(并假设)每行只有 4 个标记。

此处提供的答案可能看起来过于复杂,但它的作用是允许您的 CSV 文件包含多个不同国家/地区的数据(采用相同的假定格式),并且通常是可靠的。

D = dict()

with open('life_expectancy.csv') as csv:
    for line in csv:
        try:
            tokens = line.split(',')
            assert len(tokens) == 4
            v = float(tokens[3])
            D.setdefault(tokens[0], []).append(v)
        except (AssertionError, ValueError):
            pass

for k, v in D.items():
    print(f'Maximum life expectancy for k is max(v):.2f')
    print(f'Minimum life expectancy for k is min(v):.2f')

【讨论】:

以上是关于我试图找出 .csv 文件的最大值和最小值,但我无法弄清楚我做错了啥的主要内容,如果未能解决你的问题,请参考以下文章

怎样用numpy找出数组里最大与最小值

Python,从 csv 获取最小值、最大值和 95 percentil

递归 - 堆栈溢出错误

java中如何找出一串时间序列中的最大,最小值

用C#找出数组中的最大值和最小值

c语言:编写一个程序找出一组单词中的“最小“和“最大“的单词(单词在字典中的先后顺序,字典中先出现