【问题标题】:Python-Creating an array from a .csv file and getting the sum of that arrayPython-从 .csv 文件创建一个数组并获取该数组的总和
【发布时间】:2013-12-09 15:07:30
【问题描述】:

我有一个 csv 文件,其中包含我从另一个 python 程序输入的数字。我的目标是获取这些数字并在 python 中得到这些数字的总和。我的第一个想法是从文件中提取数字并创建一个数组。然后对数组求和。我可以提取数字并打印它们,但我不能使用 sum(array) 来总结它们。

csv 文件如下所示:

    100
    40
    50

我试过了:

    array=[]

    with open('testScores.csv') as fileName:
        for line in fileName:
            array.append(line.rstrip('\n'))

    total=sum(array)

    print(total)

我收到以下错误:

    Traceback (most recent call last):
    File "G:\test1.py", line 14, in <module>
    total=sum(array)
    TypeError: unsupported operand type(s) for +: 'int' and 'str'

我对此不是很熟悉,我不确定如何继续。

我最终将把这个总和除以 CSV 文件中的行数得到平均值。

【问题讨论】:

    标签: python arrays file csv


    【解决方案1】:

    如果你安装了 numpy,你可以这样做

    print sum( numpy.loadtxt( 'testScores.csv' ) )

    http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html

    【讨论】:

    • 我没有安装 numpy。对不起。我真的不熟悉。
    【解决方案2】:

    您的错误的根源是列表array 没有tostring 方法。相反,我认为您想要做的是将一个整数值推到 array 的末尾,以便您稍后可以 sum array

    假设每一行只包含一个整数值,你可以这样使用:

    array.append(int(line))
    

    代替代码中的第 4 行。

    【讨论】:

    • 实际上不需要rstripintfloat 都忽略前导和尾随空格。
    • 对不起,我编辑了它。这是我的第一个问题,所以我的格式错误。
    • 当我对该行进行调整时,我得到 Traceback(最近一次调用最后一次):文件“G:\test1.py”,第 13 行,在 array.append(int(line .rstrip('\n'))) ValueError: int() 基数为 10 的无效文字:'100.0'
    • @FreddieB1027:所以使用float 而不是int
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 2012-04-04
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多