How to read numbers in CSV files in Python?
CSV is a Comma-Separated Values file, which allows plain-text data to be saved in a tabular format. These files are stored in our system with a .csv extension. CSV files differ from other spreadsheet file types (like Microsoft Excel) because we can only have a single sheet in a file, and they cannot save cells, columns, or rows. Also, we cannot save formulas in this format.
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course
To parse CSV files in Python, we make use of the csv library. The CSV library contains objects that are used to read, write and process data from and to CSV files. Let’s see how we can add numbers into our CSV files using csv library.
Steps to read numbers in a CSV file:
- Create a python file (example: gfg.py).
- Import the csv library.
- Create a nested-list ‘marks’ which stores the student roll numbers and their marks in maths and python in a tabular format.
- Open a new csv file (or an existing csv file) in the ‘w’ mode of the writer object and other necessary parameters (here delimeter & quoting).
- Write into it the list ‘marks’ with the help of writerows method.
- In order to read the rows, make use of reader object and store each row(which is also a list) in a new list ‘output’.
- Print the list output for verifying the code.
Reading numbers in a CSV file without quotes:
In order to write in our CSV file ‘my_csv’, we make use of the writerows() method of the writer object. But to read numbers as they are, we will make use of an optional parameter of the writer object, which is ‘quoting’. The ‘quoting’ parameter tells the writer which character is to be quoted.
If quoting is set to csv.QUOTE_NONNUMERIC, then .writerow() will quote all fields which contain text data and convert all numeric fields to the float data type.
And this is how it looks in the CSV file ‘my_csv.csv’ which gets created once we run the above code:
Reading numbers in a CSV file with quotes:
If quoting is set to csv.QUOTE_ALL then .writerow() will quote all fields and the numbers will now be stored in quotes. To read the numbers from each row, we make use of the reader object from CSV library and store all the rows within a list ‘output’, which we would also print afterward.
And this how the above input gets stored within ‘my_csv.csv’ file: