How to Create a Pandas DataFrame

Published Sep 11, 2022

Let’s see the many different ways we can create a Pandas DataFrame.

Try testing these small examples in the Programiz Python Online Compiler. If you plan to use pandas, remember to run import pandas as pd.

1. Create an empty DataFrame

df = pd.DataFrame()

2. Create DataFrame with one column

Let’s create a DataFrame with a single column named col with values 0, 1, and 2.

2.1. From a list

data = [0, 1, 2]
df = pd.DataFrame(data, columns=['col'])

2.2. From a Series

data = pd.Series([0, 1, 2])
df = pd.DataFrame(data, columns=['col'])

3. Create DataFrame with multiple columns

Let’s create a DataFrame with columns named col1 and col2.

col1 should have values 0, 1, 2.

col2 should have values 3, 4, 5.

3.1. From a list of lists

data = [
  [0, 3],
  [1, 4],
  [2, 5]
]
df = pd.DataFrame(data, columns=['col1', 'col2'])

For all of the methods below, we can explicitly add index labels to our DataFrame using the index parameter.

df = pd.DataFrame(data, index=['index1', 'index2', 'index3'])

3.2. From a dict of lists

data = {
  'col1': [0, 1, 2], 
  'col2': [3, 4, 5]
}
df = pd.DataFrame(data)

3.3. From a list of dicts

data = [
  {'col1': 0, 'col2': 3}, 
  {'col1': 1, 'col2': 4}, 
  {'col1': 2, 'col2': 5}
]
df = pd.DataFrame(data)

3.4. From a zip of lists

col1 = [0, 1, 2]
col2 = [3, 4, 5]
list_of_tuples = list(zip(col1, col2))
df = pd.DataFrame(list_of_tuples, columns=['col1', 'col2'])

3.5. From a dict of Series

data = {
  'col1': pd.Series([0, 1, 2]), 
  'col2': pd.Series([3, 4, 5])
}
df = pd.DataFrame(data)

To add index labels with this method, we should apply them to the Series objects themselves.

data = {
  'col1': pd.Series([0, 1, 2], index=['index1', 'index2', 'index3']),
  'col2': pd.Series([3, 4, 5], index=['index1', 'index2', 'index3'])
}
df = pd.DataFrame(data)