π‘ Problem Formulation: When working with data in Python, it is common to use the pandas library to create and manipulate DataFrames. A DataFrame is a 2D data structure where data is aligned in a tabular fashion in rows and columns. There may be instances where you need to extract a column from a DataFrame and transform it into a list for further processing. How to create a list from a Pandas DataFrame column in Python?
This article explores several methods for converting a DataFrame column into a list.
Method 1: Using tolist()
The tolist()
method is the most direct way to convert a DataFrame column to a list. It is a built-in pandas function that returns the column values as a Python list.
A minimal example:
import pandas as pd # Create a DataFrame df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) # Convert column 'A' to a list column_as_list = df['A'].tolist() print(column_as_list)

In the code, df['A']
selects the column labeled 'A'
from the DataFrame df
. The tolist()
function then converts this selected column to a list. The result is a list containing the elements [1, 2, 3]
.
Method 2: Using List Comprehension
List comprehension offers a Pythonic way to convert DataFrame columns to lists. It is a concise method to create lists by iterating over iterable objects.
A minimal example:
import pandas as pd # Create a DataFrame df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) # Convert column 'A' to a list using list comprehension column_as_list = [value for value in df['A']] print(column_as_list)

The list comprehension [value for value in df['A']]
iterates over every element in column 'A'
of the DataFrame df
, collecting each element into a new list. The final list is identical to the one generated using tolist()
.
Method 3: Using the values Attribute and list()
The values
attribute of a DataFrame returns the numpy representation of the data, which can then be converted to a list using Python’s native list()
function.
A minimal example:
import pandas as pd # Create a DataFrame df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) # Convert column 'A' to a list using the values attribute column_as_list = list(df['A'].values) print(column_as_list)
df['A'].values
retrieves the values from column 'A'
as a numpy array. Wrapping this with the list()
function converts the numpy array into a Python list.
Method 4: Using Series.to_numpy() and list()
Pandas Series objects, which represent columns in a DataFrame, have a to_numpy()
method that can be used to convert the Series into a numpy array. Combining to_numpy()
with the list()
function lets you create a list from the DataFrame column.
A minimal example:
import pandas as pd # Create a DataFrame df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) # Convert column 'A' to a list using to_numpy() column_as_list = list(df['A'].to_numpy()) print(column_as_list)
By calling df['A'].to_numpy()
, we convert the column 'A'
into a numpy array. Then, we wrap that numpy array with list()
to get the final Python list with the elements of column 'A'
.
Summary/Discussion
The tolist()
method is the simplest and most straightforward, while list comprehension and the values
attribute give you more control over the selection and transformation process.
The to_numpy()
function is a modern addition to pandas, providing a clear intent to work with numpy arrays.
It’s also worth noting that, in terms of performance, methods involving direct conversion (like tolist()
) tend to be faster, especially with large datasets.