To create a DataFrame from list or nested lists in Pandas we can follow next steps:


  • Define the input data
    • flat list
    • nested list
    • dict of lists
  • Define the column names
  • Define the index - row names
  • Call the DataFrame constructor


In several examples we will cover the most popular cases of using lists to create DataFrames

Example 1 - Create Pandas DataFrame from List

Starting with a flat list which will be used for the values of the Future DataFrame. We are providing the index and the columns - which are optional. If the index and columns are not specified - then automatic ones will be used.

import pandas as pd
values = ['val_1', 'val_2', 'val_3']

df = pd.DataFrame(values, index = ['x', 'y', 'z'], columns = ['col_1'])

Output 1

x val_1
y val_2
z val_3

Example 2 - Create Pandas DataFrame from Nested Lists

The second example demonstrates creating a multi column DataFrame from nested lists. We can specify the column names as follows:

import pandas as pd

values = [['val_11', 'val_12'], ['val_21', 'val_22'], ['val_31', 'val_32']]
df = pd.DataFrame(values, columns = ['col_1', 'col_2'])

Output 2

col_1 col_2
0 val_11 val_12
1 val_21 val_22
2 val_31 val_32

Example 3 - Create Pandas DataFrame from dict of Lists

In this example we are creating multiple columns from several lists. Those lists are mapped with a dictionary to different columns.

If you want to learn more about creating DataFrames from dictionaries you can read this detailed article - How to Create DataFrame from Dictionary in Pandas?

import pandas as pd

col_1 = ["val_11", "val_21", "val_31"]
col_2 = ["val_21", "val_22", "val_32"]
data = {'col_1': col_1, 'col_2': col_2}
df = pd.DataFrame(data)

Output 3

col_1 col_2
0 val_11 val_21
1 val_21 val_22
2 val_31 val_32