Большой проект CSV - PullRequest
       1

Большой проект CSV

0 голосов
/ 29 апреля 2018

, поэтому я работаю над проектом, который читает, анализирует и записывает 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 голосов
/ 29 апреля 2018

Вы можете фильтровать 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...