Sai A Sai A
Updated date Nov 18, 2023
In this blog, we will learn how to convert CSV data into Python lists using multiple methods. Explore the methods to achieve this conversion.

Introduction:

Working with data is a fundamental part of many programming tasks. Quite often, you might need to read data from external sources, such as CSV files, and process that data in your Python programs. CSV (Comma-Separated Values) is a popular format for storing tabular data, and Python provides several ways to convert this data into lists for easy manipulation. In this blog, we will explore various methods for converting CSV data into Python lists. 

Method 1: Using Python's Built-in csv Module

The Python standard library includes a built-in csv module that simplifies the process of reading CSV files. Let's dive into the first method using this module.

import csv

csv_file = 'data.csv'  # Replace with your CSV file's path
data_list = []

with open(csv_file, newline='') as file:
    reader = csv.reader(file)
    for row in reader:
        data_list.append(row)

print(data_list)

Output:

[['Name', 'Age', 'Country'],
 ['Alice', '25', 'USA'],
 ['Bob', '30', 'Canada'],
 ['Charlie', '22', 'UK']]
  • We import the csv module to work with CSV files.
  • We open the CSV file using open and create a csv.reader object to read its contents row by row.
  • We iterate through the rows and append each row to the data_list.
  • The resulting data_list is a list of lists, where each inner list represents a row from the CSV file.

Method 2: Using the Pandas Library

Pandas is a powerful data manipulation library that provides efficient tools for data analysis. It's an excellent choice for handling CSV data.

First, you need to install Pandas if you haven't already:

pip install pandas

Now, let's use Pandas to read the CSV file and convert it into a list.

import pandas as pd

csv_file = 'data.csv'  # Replace with your CSV file's path
data_df = pd.read_csv(csv_file)
data_list = data_df.values.tolist()

print(data_list)

Output:

[['Alice', 25, 'USA'],
 ['Bob', 30, 'Canada'],
 ['Charlie', 22, 'UK']]
  • We import the Pandas library and read the CSV file using pd.read_csv.
  • The data is stored as a Pandas DataFrame (data_df).
  • We use the values attribute to get a NumPy array, and then tolist() to convert it into a list of lists.
  • The resulting data_list is a list of lists, with data types preserved for each column.

Method 3: Using the csv.reader with List Comprehension

This method combines the simplicity of the csv module with the compactness of list comprehension. It's a concise way to read and convert CSV data into a list.

import csv

csv_file = 'data.csv'  # Replace with your CSV file's path

with open(csv_file, newline='') as file:
    data_list = [row for row in csv.reader(file)]

print(data_list)

Output:

[['Name', 'Age', 'Country'],
 ['Alice', '25', 'USA'],
 ['Bob', '30', 'Canada'],
 ['Charlie', '22', 'UK']]
  • This method eliminates the need for a separate loop by using a list comprehension within the with block where we read the CSV file.
  • It creates the data_list directly, with each row as an inner list, just like in Method 1.

Method 4: Custom CSV Parsing

Sometimes, you may encounter CSV files with non-standard delimiters or unique formatting. In such cases, you can create a custom parser tailored to the file's structure. Here's an example:

csv_file = 'custom_data.csv'  # Replace with your CSV file's path
data_list = []

with open(csv_file, 'r') as file:
    for line in file:
        data_list.append(line.strip().split(';'))

print(data_list)

Output:

[['Name', 'Age', 'Country'],
 ['Alice', '25', 'USA'],
 ['Bob', '30', 'Canada'],
 ['Charlie', '22', 'UK']]
  • In this example, we use a custom approach to handle a CSV file with a semicolon delimiter.
  • We open the file and manually split each line based on the semicolon (;) separator, creating the data_list.

Conclusion:

In this blog, we have explored several methods for converting CSV data into Python lists, each with its own advantages. Method 1 uses Python's built-in csv module, offering simplicity and basic functionality. Method 2 utilizes the Pandas library, providing powerful data manipulation capabilities and data type preservation. Method 3 combines the csv module with list comprehension for a more concise approach. Method 4 demonstrates how to create a custom parser for non-standard CSV files.

Comments (0)

There are no comments. Be the first to comment!!!