How to convert Python / Pandas rows and columns to a list?

There are cases in which when working with Pandas Dataframes and data series objects you might need to convert those into lists for further processing.

In this post we’ll convert into lists (or list of lists) the following:

  • Dataframe columns
  • Dataframe rows
  • Entire Dataframes
  • Data series arrays

Creating your sample Dataframe

Before we get started let’s set the environment and create a simple Dataframe to work with. We’ll convert a simple dictionary containing fictitious information on programming languages and their popularity. This is just for training/learning purposes, as in real live you’ll be importing your data from csv files (read_csv), Json, sql databases and so forth.

Paste the following into your favorite Python editor to create the test Dataframe.

# Python3
import pandas as pd

data = pd.DataFrame({"Language": ["Ruby", "PHP", "JavaScript", "C-Sharp", "VB.NET", "Pyhton"],
                    "Popularity": [400, 100, 500, 300, 200, 1000]})

Let’s take a look at the data. Run the following:

#Python3
data.head()

Here’s the output:

Convert a column/series to list of strings

Let’s go ahead and convert the Language column to a list of strings. Here’s how you can easily do it:

languages = list(data["Language"])

Let’s look at the output:

print(languages)

Python created a list of strings:

[‘Ruby’, ‘PHP’, ‘JavaScript’, ‘C-Sharp’, ‘VB.NET’, ‘Python’]

Convert a Pandas row to a list

Now we would like to extract one of the dataframe rows into a list. For simplicity let’s just take the first row of our Pandas table.

#Python3
first_row = list(data.loc[0])

Let’s look into the result:

#Python3
print(first_row)

Python created a list containing the first row values:

[‘Ruby’, 400]

Convert a dataframe to a list of lists

We just learnt that we are able to easily convert rows and columns to lists. But what if we want to convert the entire dataframe?

Here we go:

data.values.tolist()

We’ll return the following list of lists:

[['Ruby', 400],
 ['PHP', 100],
 ['JavaScript', 500],
 ['C-Sharp', 300],
 ['VB.NET', 200],
 ['Python', 1000]]

Convert a Pandas dataSeries to a list

We’ll first going to quickly create a data Series from a Numpy array Then export it back to a list. Here we go:

#Python3
import numpy as np
ds = pd.Series(np.array([1,2,3,4,5])
list(ds)

And the output will be a list:

print (list (ds))

[1, 2, 3, 4, 5]

That’ it for today, happy data wrangling 🙂