Skip to main content

Report builder for Pandas DataFrame

Project description

Avatar

Build Status Code Scanning Status Dependencies Status Security Status Published Version

Pandas Reporter

Pandas Reporter is a report builder for Pandas DataFrame. It generates HTML, JSON, text, or YAML report containing the data in the data frame.

Installation

pip3 install pandasreporter

Usage

Create pandasreporter object and run it:

from pandasreporter import PandasReporter

# Prepare your data frame
data = {
    "Name": ["Barkley", "Pippen", "Robinson"],
    "DOB": ["19630220", "19650925", "19650806"],
    "City": ["Philadelphia", "Chicago", "San Antonio"],
}
data_frame = pd.DataFrame(data)

pandas_reporter = PandasReporter()
_opts = {
    "title": "Pandas Report",
    "generator": "Pandas Reporter",
    "rows_styler": <rows_styler_function>,
    "max_col_size": 80,
}

pandas_reporter.report(
    data_frame,
    "html", # other formatters: json, text, or yaml
    _opts,
)

Configuration

These are the optional properties that you can use with pandasreporter.report. Some example report files are available on examples folder.

Opt Type Description Example Formatter
max_col_size Number Maximum value length 80 All
title String HTML report title value Pandas Report html
generator String HTML report generator meta Pandas Reporter html
rows_styler Function Data row styler html

HTML Rows Styler

Rows styler can be used to apply style to each of the table rows in HTML report.

Here's an example rows styler function which checks a row's "Expiry Date" column value against current date and a threshold date, and add background-color style accordingly:

def rows_styler(row):
    today = pd.Timestamp.today()
    threshold_date = today + pd.DateOffset(days=self.expiry_threshold_in_days)
    if row["Expiry Date"] <= today:
        style = ["background-color: LightPink"] * len(row)
    elif row["Expiry Date"] <= threshold_date:
        style = ["background-color: LightYellow"] * len(row)
    else:
        style = ["background-color: LightGreen"] * len(row)
    return style

Report Formats

HTML

Screenshot of report in HTML format

Text

┌──────────┬──────────┬──────────────┐
│ Name     │      DOB │ City         │
├──────────┼──────────┼──────────────┤
│ Barkley  │ 19630220 │ Philadelphia │
├──────────┼──────────┼──────────────┤
│ Pippen   │ 19650925 │ Chicago      │
├──────────┼──────────┼──────────────┤
│ Robinson │ 19650806 │ San Antonio  │
└──────────┴──────────┴──────────────┘

JSON

[
{
    "Name":"Barkley",
    "DOB":"19630220",
    "City":"Philadelphia"
},
{
    "Name":"Pippen",
    "DOB":"19650925",
    "City":"Chicago"
},
{
    "Name":"Robinson",
    "DOB":"19650806",
    "City":"San Antonio"
}
]

YAML

- City: Philadelphia
    DOB: '19630220'
    Name: Barkley
- City: Chicago
    DOB: '19650925'
    Name: Pippen
- City: San Antonio
    DOB: '19650806'
    Name: Robinson

Colophon

Developer's Guide

Build reports:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pandasreporter-1.1.1.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pandasreporter-1.1.1-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file pandasreporter-1.1.1.tar.gz.

File metadata

  • Download URL: pandasreporter-1.1.1.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.6 Linux/6.17.0-1018-azure

File hashes

Hashes for pandasreporter-1.1.1.tar.gz
Algorithm Hash digest
SHA256 939585688ef2d48452984b0d208cbf67d5e3148fc2eb292121c6aafa81a11f9c
MD5 63de47733824cc7ed4304874d3e5e960
BLAKE2b-256 ac9f8f7fd1e91a06d849e75865ed7a2bec52ade0c3da4ec7fa4aebd6c3b16b16

See more details on using hashes here.

File details

Details for the file pandasreporter-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: pandasreporter-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.6 Linux/6.17.0-1018-azure

File hashes

Hashes for pandasreporter-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0bbafe4e3d1160f3f51ce4192e5a7aaf7468a7304e094e2414357a66ffaf413f
MD5 43419645d8b2acf11bfea27849762e1e
BLAKE2b-256 d7c6de88d596ef36b145c8800ba285c819c97b2eb49a9157b02c296544c797cf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page