大型CSV项目

时间:2018-04-29 19:52:18

标签: python csv math

所以我正在开发一个读取,解析和写入MASSIVE csv文件的项目。我现在关注的部分是地球每个地区的人口。每个地区都有三类人口分为年龄。人口1-15,人口15-65,人口65+,我在python中写这一切,并遇到了一些我无法弄清楚的问题。我将粘贴代码并进一步解释

from tkinter import *
from tkinter import filedialog 
import csv
root = Tk()
root.geometry("500x600")
with open("REGION.csv", "r") as csv_file:
    csv_reader = csv.DictReader(csv_file)
    for line in csv_reader :
        print(line ["REGION_ID"])
        print(line ["POPULATION_15"])
        print(line ["POPULATION_15_65"])
        print(line ["POPULATION_65"])


lbl1 = Label(root, text = "Enter orginal population (Estimate, Past figures only)").pack()
orpop = Entry(root).pack()


mainloop()

(代码可能有点草率,这是我的第一个项目。) 好的,现在,他们大约有2806个地区,并且都有3个类别的流行音乐,现在,我想要做的第一件事是添加所有地区的所有人口,所以POPULATION_15 + POPULATION_15_65 + POPULATION_65 如果有人能给我这些代码,我们将不胜感激。 接下来,我提示用户过去给一个人口,一个地球。然后,程序将该人口与原始人口分开,然后将其平均分成三个类别和所有区域。 毕竟,它将导出新数据的新文件。

总流行度除以用户给出的原始数量之外的人口数量,将给出每个地区的所有三个类别的人口需要减少多少的比率。就像你输入的人口是今天的一半,它会使所有人口减少50%。无论什么方式都能完成工作。

1 个答案:

答案 0 :(得分:0)

您可以在读取时过滤csv以仅保存所需的数据。当您浏览这些线时,您还可以计算相关数据,例如总区域人口。

完成后,您将拥有一个表格,您可以在其中迭代行或对[row][col]指标进行计算。

region_table = []

with open("REGION.csv", "r") as csv_file:
    csv_reader = csv.DictReader(csv_file)
    for row in csv_reader:
        # filter interesting columns cast to proper data type
        converted = [row["REGION_ID"], int(row["POPULATION_15"]),
            int(row["POPULATION_15_65"]), int(row["POPULATION_65"])]
        # sum the various populations into a grand total
        converted.append(sum(converted[1:4]))
        region_table.append(converted)

total_population = sum(row[4] for row in region_table)