Python - определить изменение стоимости от одного периода к следующему - PullRequest
0 голосов
/ 26 ноября 2018

Заранее спасибо за помощь.Я новичок в Python (и кодирования в целом), и я пытаюсь сделать несколько вещей, с импортированным файлом CSV ниже.Проблема, с которой я сталкиваюсь, заключается в том, чтобы зафиксировать (в списке) изменение дохода от одной строки к другой, например, изменение дохода с 18.10 по 11.11.В идеале у меня был бы окончательный список с ["month", "change vs previous"].

Вот мой существующий код:

import os

import csv

csvpath = os.path.join("C:/test2", "budget_data.csv")

num_rows=0
total_rev=0

with open(csvpath, newline="") as csvfile:
    csvreader = csv.reader(csvfile, delimiter= ",")
    print(csvreader)
    csv_header =next(csvreader)
    print(f"CSV Header:  {csv_header}")
    for row in csvreader:
        num_rows=num_rows+1
        total_rev += int(row[1])


print("")
print("There are "+ str(num_rows) +" months of data!")
print("Total Revenue is "+str(total_rev)+" dollars!")

1 Ответ

0 голосов
/ 27 ноября 2018

Вам необходимо добавить переменную для хранения дохода за предыдущий ряд.Это обновляется в конце каждого цикла:

import os
import csv

csvpath = os.path.join("C:/test2", "budget_data.csv")

num_rows = 0
total_rev = 0
change_from_previous = []

with open(csvpath, newline="") as csvfile:
    csvreader = csv.reader(csvfile, delimiter=",")
    print(csvreader)
    csv_header = next(csvreader)
    print(f"CSV Header:  {csv_header}")
    previous_revenue = 0

    for row in csvreader:
        revenue = int(row[1])
        num_rows += 1
        total_rev += revenue
        change_from_previous.append([row[0], revenue - previous_revenue])
        previous_revenue = revenue

print("")
print("There are "+ str(num_rows) +" months of data!")
print("Total Revenue is "+str(total_rev)+" dollars!")
print(change_from_previous)

Это будет отображать список, содержащий каждый месяц, и изменится:

[['Jan-10', 867884], ['Feb-10', 116771], ['Mar-10', -662642], ['Apr-10', -391430], ['May-10', 379920], ['Jun-10', 212354], ['Jul-10', 510239], ['Aug-10', -428211], ['Sep-10', -821271], ['Oct-10', 693918], ['Nov-10', 416278], ['Dec-10', -974163], ['Jan-11', 860159], ['Feb-11', -1115009], ['Mar-11', 1033048], ['Apr-11', 95318], ['May-11', -308093], ['Jun-11', 99052], ['Jul-11', -521393], ['Aug-11', 605450], ['Sep-11', 231727], ['Oct-11', -65187], ['Nov-11', -702716], ['Dec-11', 177975], ['Jan-12', -1065544], ['Feb-12', 1926159], ['Mar-12', -917805], ['Apr-12', 898730], ['May-12', -334262], ['Jun-12', -246499], ['Jul-12', -64055], ['Aug-12', -1529236], ['Sep-12', 1497596], ['Oct-12', 304914], ['Nov-12', -635801], ['Dec-12', 398319], ['Jan-13', -183161]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...