使用 Python 和 CSV 查找列的 SUM、AVG 和 DIFF

Finding SUM, AVG, and DIFF of columns using Python with a CSV

在 Python 3.8 上使用 CSV,内容如下:

现在,Column_3和Column_4中的数字需要SUM,AVG,求它们的总和的差。

我目前一直在尝试获取两个要打印的总和。这是我的进度:

import csv
import decimal

with open("sample.csv") as myFile:
    reader = csv.DictReader(myFile)
    print(sum(float(line["Column_3"]) for line in reader))
    print(sum(float(line["Column_4"]) for line in reader))

使用这个,Column_3 的总打印量但是 Column_4 我得到一个“0”。删除 Column_3 的 prin 行,然后我得到 Column_4 的总数就好了。我也试过:

import csv
import decimal

with open("sample.csv") as myFile:
    total = 0
    for line in csv.DictReader(myFile):
        total += int(line["Column_3"])
    print(total)
but i get

Traceback (most recent call last):
  File "some file pathway", line 7, in <module>
    total += int(line["Column_3"])
ValueError: invalid literal for int() with base 10: '1345.67'

哪个数字代表那个column_3的第一个数字值。

我被难住了。任何帮助表示赞赏。我确定我会带着关于查找 AVG 的问题返回,然后使用它们的总数来找出它们的差异,所有这些都需要从同一个程序打印 运行 但我已经卡住了。

你的 reader 对象只能通过 CSV 文件一次,因为你通过第 3 列的列表不会打印第 4 列,因为没有什么可读的了。您的第二种方法很好,只需将 int() 替换为 float() 因为您使用的是 decimals