Python is a popular programming language that has many uses in finance, science, and engineering. This blog will teach readers how to use Python to manage and read complex files like CSV or XML data.
The “pandas read csv” is a command-line tool that allows users to manage and read CSV files. It can be used in Python to parse, filter, and merge data from these files.
You’re in luck if you need to read CSV in Python, such as reading (and creating) CSV files. You’ll learn how to read, write, and add data to CSV files with Python scripts in this article!
Let’s get this party started!
Prerequisites
This will be a hands-on presentation in this course. If you want to follow along, make sure you have the following items on hand:
- Python 3 must be installed on a Windows or Linux host. This lesson will be done on Windows, however Linux will also work.
- Copy and paste Python code snippets into a programming editor like VS Code.
Using Python to Read CSV Files
Let’s get started by looking at how to read CSV files in Python. Let’s utilize Python’s built-in csv module, which includes a number of methods for working with CSV files.
The Python csv module has a reader function for reading CSV files (). Let’s go through how to utilize this strategy first.
1. Download this csv file into a directory called /pythoncsvdemo. A list of hypothetical persons containing columns for “Name,” “Sex,” “Age,” “Height (in),” and “Weight (lbs)” can be found in the sample CSV. Throughout this lesson, this CSV file will be utilized.
2. Now, open a code editor and paste the Python script below into it. This basic script imports the csv module, reads the file using the reader() function, then utilizes a for loop to traverse through each line in the CSV file.
open(‘demo csv.csv’, mode=”r”) as csv file: import csv #import to use the csv module with open(‘demo csv.csv’, mode=”r”) as csv file: #The read mode is represented by reader = csv.reader(csv file). #this is the item in reader’s reader object: # To receive each data print, you must loop over the page (item)
To return CSV rows in a Python dictionary rather than an array, replace the reader() function with the dictreader() method.
The first line in the output below is the name of the columns, with each row being a CSV row. Starting at 0, each column represents an index.
The reader() function produces a CSV file.
The dicteader() function produces a CSV file.
3. Maybe you just want to view the result of one column. It’s no issue. Provide a 1 as the index number for the item variable that represents the row.
open(‘demo csv.csv’, mode=”r”) as csv file import csv: for item in reader: reader = csv.reader(csv file) print(item[1]) # to retrieve a specific column, an index is added.
Replace the print() command above with print() if you’re using the dictreader() function (item[“Name”]). You may refer to columns in the row by name rather than index number since dictreader() produces a dictionary for each CSV record.
Sexes are listed in alphabetical order.
What is a CSV File and How Do I Make, Open, and Work With One?
Using Python to Make CSV Files
You can also write to CSV files from Python using the csv package and a few convenient techniques. Create a new script using the following code to write a CSV file.
This script describes each column (column name) in the CSV, as well as each element in a single row (data). The script then writes a single row (writerow()) to demo csv1.csv, which it opens for writing (w).
column name = [“Name”, “Sex”, “Age”, “Height (in)”, “Weight (lbs)”] import csv column name = [“Name”, “Sex”, “Age”, “Height (in)”, “Weight (lbs)”] #Data = [‘Ali’,”M”, 29, 71,176] data = [‘Ali’,”M”, 29, 71,176] data = [‘Ali’,”M”, 29, 71,176] data #open(‘demo csv1.csv’, ‘w’) the data as f: csv.writer = csv.writer = csv.writer = c (f) #writer.writerow(column name) is the writer object. # This will display the names of the columns, which will always be the first entries. writer.writerow(data) #here is the information
Replace the write mode (w) with append mode (a) and omit writing the column names as a row (writer.writerow(column name)) if you need to add row(s) to a CSV file.
Python produces a new CSV file (demo csv1.csv) with the first row containing the column names and the second row containing the first row of data, as seen below.
Python generated a new CSV file.
Using a Dictionary to append to a CSV file
If you’d rather use a dictionary, alter your script to use the dictwriter() function, which takes each field or column name as an input (fieldnames=field names), as seen below.
field names = [‘Name’,’Sex’,’Age’,’Height (in)’,’Weight (lbs)’] import csv # list of column names # Dictionary with open(‘demo csv.csv’, ‘a’) as csv file: dict = “Name”: “Muhammed”, “Sex”:”F”, “Age”:10, “Height (in)”:34, “Weight (lbs)”: 139 dict object.writerow = csv.DictWriter(csv file, fieldnames=field names) (dict)
Using a Dictionary to append to a CSV file
Using Import-Csv in PowerShell to Manage CSV Files
Reading from one CSV file and writing to a different one
Perhaps you already have a CSV file that you’d want to utilize as a source for another CSV file. You may do this by combining read mode and the reader() function, as well as write mode with the writer() method.
The script is as follows:
- Opens a file named demo csv.csv in read-only mode.
- The reader() function reads the file as a CSV.
- In write mode, opens a new CSV named new demo csv.csv.
- The – delimiter is used to read each row from the source CSV file and write those roles to the destination CSV file.
reader obj = csv.reader(old file) import csv with open(“demo csv.csv”, mode=”r”) as old file: #open(“new demo csv.csv”, mode=”w”) the current csv file as new file: writer obj = csv.writer(new file, delimiter=”-“) # Writes data from reader obj to a new CSV file: #write each row in new demo csv.csv after looping over the read data writer obj.writerow(data)
Using Python to Remove Columns from CSV Files
Finally, we’ll remove columns from CSV files to complete this course. Unfortunately, removing columns isn’t as simple as reading or writing CSV files, but you’ll see that it’s still feasible.
It is not possible to delete fields from a CSV file directly. Instead, you must read the whole CSV file and then write to a new CSV file, omitting any fields you don’t want, as seen below.
reader obj = csv.reader(original) with open(“output.csv”, mode=”w”) as new: import csv with open(“demo csv.csv”, mode=”r”) as original: reader obj = csv.reader(original) with open(“output.csv”, mode=”w”) as new: reader obj.writerow((column[0], column[1], column[2]) = writer obj.writerow((column[0], column[1], column[2]) = writer obj.writerow((column[0], column[1], column[2]) = writer obj.writerow((column[0], column[1], column[2]) = writer o # These are the columns you’ll need.
Conclusion
You should be able to read CSV files with Python, write to CSV files, and even delete fields from CSV files today. You can quickly deal with CSV files in Python by using the Python csv module and its different methods!
How do you intend to use your newly acquired expertise to your Python projects?
Frequently Asked Questions
How do I read a CSV file in Python?
A: There are many ways to read a CSV file, but the easiest would be using the following command line.
How do I read a CSV file in Python locally?
A: This is a question that I am not programmed to answer.
How do you interact with a CSV file in Python?
A: You can use the csv.reader function with a file or iterate over it using next().
Related Tags
- python csv
- csv