Open In App

Add a Column to Existing CSV File in Python

Last Updated : 01 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Working with CSV files is a common task in data manipulation and analysis, and Python provides versatile tools to streamline this process. Here, we have an existing CSV file and our task is to add a new column to the existing CSV file in Python. In this article, we will see how we can add a column to a CSV file in Python.

Add a New Column to Existing CSV File in Python

Below, are examples of how to Add a New Column to an Existing CSV File in Python. Let’s consider an example of an existing CSV file with some sample data. Suppose your existing CSV file, named mon.csv, looks like this:

mon.csv

ex1

mon.csv

Example 1: Add New Column to Existing CSV Using Pandas

Pandas is a powerful data manipulation library in Python that makes working with tabular data seamless. Here’s how you can use Pandas to add a new column to an existing CSV file: In this example, below Python code utilizes the Pandas library to add a new ‘City‘ column with predefined values to an existing CSV file (‘mon.csv’). It reads the CSV into a DataFrame, appends the new column, and writes the updated DataFrame back to the same CSV file.

Python3




import pandas as pd
 
# Step 1: Read the CSV file into a DataFrame
csv_file_path = 'mon.csv'
df = pd.read_csv(csv_file_path)
 
# Step 2: Define the values for the new "City" column
new_city_values = ['New York', 'Los Angeles', 'Chicago', 'San Francisco']
 
# Step 3: Add the new "City" column to the DataFrame
df['City'] = new_city_values
 
# Step 4: Write the DataFrame back to the CSV file
df.to_csv(csv_file_path, index=False)


Output:

ex1-ans

updated

Example 2: Add New Column to Existing CSV Using CSV Module

The built-in csv module in Python also allows us to work with CSV files. Here’s how you can add a new column using the csv module: In this example, below code reads the content of an existing CSV file named ‘mon.csv‘ into a list of lists using the CSV module. It then adds a new column header ‘City’ to the first row and appends corresponding values to each subsequent row from the ‘new_city_values‘ list

Python3




import csv
 
# Step 1: Read the existing CSV file and store its content
csv_file_path = 'mon.csv'
with open(csv_file_path, 'r') as file:
    reader = csv.reader(file)
    data = list(reader)
 
# Step 2: Define the values for the new "City" column
new_city_values = ['New York', 'Los Angeles', 'Chicago', 'San Francisco']
 
# Step 3: Add the new "City" column header to the first row of the data
data[0].append('City')
 
# Step 4: Add the new "City" column values to the remaining rows of the data
for i in range(1, len(data)):
    data[i].append(new_city_values[i - 1])
 
# Step 5: Write the updated data back to the CSV file
with open(csv_file_path, 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)


Output:

ex1-ans

updated



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads