Skip to main content

Logging for pandas dataframes

Project description

pdlog

pdlog provides logging for pandas dataframes, to better enable you to monitor and debug your data pipelines.

For example:

>>> import pdlog
>>> df = df.log.dropna()
2020-05-26 20:55:30,049 INFO <pdlog> dropna: dropped 1 row (17%), 5 rows remaining

Example

The above assumes that the logging module has been configured and that data has been loaded into a pandas DataFrame. Let's walk through those steps with a simple example.

  1. Configure logging:

    >>> import logging
    >>> fmt = "{asctime} {levelname} <{name}> {message}"
    >>> logging.basicConfig(format=fmt, style="{", level=logging.INFO)
    
  2. Load data into a pandas.DataFrame:

    >>> import pandas as pd
    >>> df = pd.DataFrame([0, 1, 2, None, 4])
    >>> df.head()
         0
    0  0.0
    1  1.0
    2  2.0
    3  NaN
    4  4.0
    
  3. Importing pdlog and call a method under the log accessor:

    >>> import pdlog
    >>> df = df.log.dropna()
    2020-05-26 20:55:30,049 INFO <pdlog> dropna: dropped 1 row (17%), 5 rows remaining
    

Supported methods

pdlog currently supports the following pandas.DataFrame methods:

  • Filter rows and select columns:
    • drop_duplicates
    • drop
    • dropna
    • head
    • query
    • sample
    • tail
  • (Re-)set indexes:
    • reset_index
    • set_index
  • Rename indexes:
    • rename
  • Reshape:
    • melt
    • pivot
  • Impute:
    • bfill
    • ffill
    • fillna

Related Work

pandas-log

pandas-log is aimed at interactive usage. Its messages are friendlier and more verbose than pdlog aims to be. Ideally, each pdlog message should be a single line of dense information to help you understand whether your production code is doing what you think it is, while not overflowing your logs. These don't tend to make particularly friendly messages.

tidylog

pdlog can be considered a port of tidylog (R package) to pandas. Their goals align with ours, and we think they've done a great job at reaching those goals.

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

pdlog-0.1.0.post0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

pdlog-0.1.0.post0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file pdlog-0.1.0.post0.tar.gz.

File metadata

  • Download URL: pdlog-0.1.0.post0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.5

File hashes

Hashes for pdlog-0.1.0.post0.tar.gz
Algorithm Hash digest
SHA256 1d6fed8747b7bec2db733474e9bcd581ee2dcea451db5694ee1ae209a54b4f85
MD5 88dceec8feab0c4d3eab8b3001b2be96
BLAKE2b-256 86b474962acff6b9123614d47bb0ca128e68b63f6f9b5740261f9fd304b47c3f

See more details on using hashes here.

File details

Details for the file pdlog-0.1.0.post0-py3-none-any.whl.

File metadata

  • Download URL: pdlog-0.1.0.post0-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.5

File hashes

Hashes for pdlog-0.1.0.post0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f776376c585ed107c8f21537ea7524235be3d864390f0a2f1511faabbac1360
MD5 4129ebebfa2c0c998b107b7163dc96bc
BLAKE2b-256 de72a29edfb1c2034f54b5f749e3a06defe4e7090597613665fb4a8406299c19

See more details on using hashes here.

Supported by

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