Trying to add sums from a csv file in python

2024/10/15 5:17:03

I need to add sums of a csv file. The program is a test for a travel reservation system and the file reads like this:

availableSTART,reservations,cancellations,availableEND
20,1,0,18

I need to subtract reservations from the available start integer, then add back cancellations (Which in this case results to 0) and then print the output, which in this case results in 18. So far, I have opened the CSV file and printed what it contains. Here is my code this far. Any help would be appreciated!

import csvwith open ('transactions.csv') as csvfile:readCSV = csv.reader(csvfile, delimiter=',')print (readCSV)for row in readCSV:print(row)
Answer

One way to read a CSV file is using a csv.DictReader.

This object can iterate your CSV file and return a dictionary which keys are columns names and values are row values. But you need to convert string values to integers:

>>> import io
>>> import csv>>> with io.open('transactions.csv') as csvfile:
...     reader = csv.DictReader(csvfile)
...     for row in reader:
...         values = {k: int(v) for k, v in row.items()}
...         print(values)
...
{'availableEND': 18, 'reservations': 1, 'availableSTART': 20, 'cancellations': 0}

Then you can make your sums…

>>> with io.open('transactions.csv') as csvfile:
...     reader = csv.DictReader(csvfile)
...     for row in reader:
...         values = {k: int(v) for k, v in row.items()}
...         sums =  values['availableSTART'] + values['cancellations'] - values['reservations']
...         print(sums)
19
https://en.xdnf.cn/q/117865.html

Related Q&A

Numerical patterns in Python3 [duplicate]

This question already has answers here:How to print without a newline or space(30 answers)Closed 7 years ago.Im fairly new to programming, i have to start learning it for Uni.I have to make a pattern a…

setsockopt before connect for reactor.connectTCP

I have a small python client which needs a setsockopt after create_socket, but before connect. The non-twisted python code is as follows. How can this be expressed in a twisted environment?create_sock…

Manage quotation marks in XPath (lxml)

I want to extract web elements from the table MANUFACTURING AT A GLANCE in the given website. But the name of the row has (single quote). This is interfering with my syntax. How do I overcome this iss…

exception capture in threads and parent

How do you nicely capture exceptions in Python threads?If you have a threaded python app sys.excepthook does not capture errors in children.When a child raises an exception the parent will continue to…

Writing a program that compares 2 numbers in Python [closed]

Its difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying thi…

Run Python3 without activating the virtual environment

My objective is to run Python 3 code on the AWS Lambda Service, which currently only supports Python 2.7. These are the steps I have done.Since I work on a Mac, setup a docker image similar to the AWS …

Matplotlib functions in tkinter

This is my first python project so I understand that this problem may seem a bit stupid. I am trying to create a Mandelbrot renderer. I am piecing code together from tutorials and code that I understan…

sudo su user -c with arguments not working

I am trying to execute command from python as another "user" with:command = "sudo su user -c player --standard=1 -o 2" subprocess.Popen(command.split(), shell=False, stdin=None, std…

Grouping data on column value

Hi I have data (in excel and text file as well) like C1 C2 C31 p a1 q b2 r c2 s dAnd I want the output like:C1 C2 C31 p,q a,b2 r,s c,dHow can I group the data…

Memory Error Python Processing Large File Line by Line

I am trying to concatenate model output files, the model run was broken up in 5 and each output corresponds to one of those partial run, due to the way the software outputs to file it start relabelling…