Add a Column to Existing CSV File in Python
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
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:
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: