Skip to content

pandas library

pandas documentation

pandas is an open-source project, funded by nonprofit NumFOCUS.

pandas (imported as pd) is a widely used library for tabular data — rows and columns, like a spreadsheet, with tools for filtering, sorting, and summarizing built in. It's a third-party package, not part of the standard library, and is built on top of NumPy.

Setup

pip install pandas

pd is the conventional alias for pandas and is very commonly used — including throughout this page.

import pandas as pd
Type Shape Like
Series One column of labeled values A single spreadsheet column
DataFrame Many columns, sharing an index A whole spreadsheet or table

Building a DataFrame

A DataFrame is most often built from a list of dicts — one dict per row, with matching keys becoming the column names.

import pandas as pd

snakes = pd.DataFrame([
    {"species": "ball", "length_ft": 4.5, "venomous": False},
    {"species": "burmese", "length_ft": 12, "venomous": False},
])

print(snakes)
Building from a dict of lists

The same table can also be built from a single dict where each key maps to a whole column's worth of values. The rows line up by position across every list, so all the lists need to be the same length.

pd.DataFrame({
    "species": ["ball", "burmese"],
    "length_ft": [4.5, 12],
})
Run a building a DataFrame example

All the examples above, combined into one script:

import pandas as pd

snakes = pd.DataFrame([
    {"species": "ball", "length_ft": 4.5, "venomous": False},
    {"species": "burmese", "length_ft": 12, "venomous": False},
])

print(snakes)

import pandas as pd

snakes = pd.DataFrame({
    "species": ["ball", "burmese"],
    "length_ft": [4.5, 12],
})

print(snakes)

Working with a DataFrame

A single column pulled out of a DataFrame (with df["column"]) is a Series — comparing it to a value produces a boolean mask, exactly like a NumPy array, for filtering rows.

import pandas as pd

snakes = pd.DataFrame([
    {"species": "ball", "length_ft": 4.5},
    {"species": "burmese", "length_ft": 12},
    {"species": "boa", "length_ft": 8},
])

big_snakes = snakes[snakes["length_ft"] > 5]
print(big_snakes)

Sorting rows

Returns the DataFrame reordered by a column. .sort_values("column") sorts ascending by default, or descending with ascending=False. Like most pandas operations, it returns a new DataFrame rather than reordering the original in place.

snakes.sort_values("length_ft", ascending=False)    # rows reordered longest-first

Summarizing a column

Calling .mean(), .max(), or similar directly on a column summarizes it down to a single number. The same way it would on a NumPy array — a Series supports the same aggregation methods.

snakes["length_ft"].mean()    # 8.166666666666666
snakes["length_ft"].max()     # 12.0
Run a working with a DataFrame example

All the examples above, combined into one script:

import pandas as pd

snakes = pd.DataFrame([
    {"species": "ball", "length_ft": 4.5},
    {"species": "burmese", "length_ft": 12},
    {"species": "boa", "length_ft": 8},
])

big_snakes = snakes[snakes["length_ft"] > 5]
print(big_snakes)

import pandas as pd

snakes = pd.DataFrame([
    {"species": "ball", "length_ft": 4.5},
    {"species": "burmese", "length_ft": 12},
    {"species": "boa", "length_ft": 8},
])

print(snakes.sort_values("length_ft", ascending=False))

import pandas as pd

snakes = pd.DataFrame([
    {"species": "ball", "length_ft": 4.5},
    {"species": "burmese", "length_ft": 12},
    {"species": "boa", "length_ft": 8},
])

print(snakes["length_ft"].mean())
print(snakes["length_ft"].max())