Add a Column to Existing CSV File in Python
Last Updated :
01 Mar, 2024
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
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
csv_file_path = 'mon.csv'
df = pd.read_csv(csv_file_path)
new_city_values = [ 'New York' , 'Los Angeles' , 'Chicago' , 'San Francisco' ]
df[ 'City' ] = new_city_values
df.to_csv(csv_file_path, index = False )
|
Output:
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
csv_file_path = 'mon.csv'
with open (csv_file_path, 'r' ) as file :
reader = csv.reader( file )
data = list (reader)
new_city_values = [ 'New York' , 'Los Angeles' , 'Chicago' , 'San Francisco' ]
data[ 0 ].append( 'City' )
for i in range ( 1 , len (data)):
data[i].append(new_city_values[i - 1 ])
with open (csv_file_path, 'w' , newline = '') as file :
writer = csv.writer( file )
writer.writerows(data)
|
Output:
updated
Share your thoughts in the comments
Please Login to comment...