Skip to main content

Funções utilitárias para facilitar o uso do pandas

Project description

📦 bpandas

bpandas é uma coleção de helpers para deixar o uso do pandas mais simples e rápido.
Comece em segundos com tabela de frequências e gráfico de barras + linha (dois eixos Y) — limpo e profissional.

PyPI Python License: MIT


✨ O que vem pronto

  • bfrequencies(df, column, ...) → distribuição de frequências (absoluta, relativa e acumuladas).
  • blinebar(df, x, y_bar, y_line, ...)barras + linha com dois eixos Y (matplotlib puro, layout clean).

Ideal para dashboards rápidos, EDA e material didático.


📦 Instalação

PyPI:

pip install bpandas
Dev local (na raiz do projeto):

bash
Copiar
Editar
pip install -e .
Requisitos: Python 3.13. As versões das libs estão pinadas no pyproject.toml.

🚀 Comece em 30 segundos
python
Copiar
Editar
import pandas as pd
import bpandas as bp

# Exemplo simples
df = pd.DataFrame({"sexo": ["M","F","M","M","F", None]})

# 1) Tabela de frequências
freq = bp.bfrequencies(
    df, "sexo",
    include_na=True,    # inclui ausentes
    sort_by="index",    # "index" ou "count"
    ascending=True,
    percent=True,       # True = 0–100%; False = 0–1
    decimals=2
)
print(freq.head())
# -> colunas: value, frequency, relative_frequency, cumulative_frequency, cumulative_relative_frequency

# 2) Gráfico: barras (freq absoluta) + linha (freq relativa acumulada)
bp.blinebar(
    freq,
    x="value",
    y_bar="frequency",
    y_line="cumulative_relative_frequency",
    title="Distribuição por Sexo",
    xlabel="Categorias",
    ylabel_left="Frequência Absoluta",
    ylabel_right="Frequência Acumulada (%)",
    y2_is_percent=True,   # formata eixo direito como %
    rotate_xticks=0,      # 0, 30, 45, 90...
    # savepath="saida.png"  # opcional: salva a figura
)
🧠 API (resumo)
bfrequencies(df, column_name, *, include_na=True, sort_by="index", ascending=True, percent=True, decimals=2) -> pd.DataFrame
Entrada: df (DataFrame), column_name (str).

Parâmetros úteis:
include_na (inclui/exclui ausentes)  sort_by ("index"/"count")  percent (0–100 vs 0–1)  decimals.

Saída: DataFrame com:
value, frequency, relative_frequency, cumulative_frequency, cumulative_relative_frequency.

blinebar(df, x, y_bar, y_line, *, title=None, xlabel=None, ylabel_left="Frequência Absoluta", ylabel_right="Frequência Acumulada (%)", y2_is_percent=True, figsize=(10,6), bar_width=0.65, color_bar=None, color_line=None, rotate_xticks=0, grid=True, savepath=None, show=True) -> (fig, ax, ax2)
Gráfico combinado (barras + linha) com 2 eixos Y.

y2_is_percent=True formata o eixo direito como % (assumindo 0–100).

Retorna fig, ax, ax2 para customizações posteriores.

🧪 Testes
bash
Copiar
Editar
python -m pytest -q
🛠 Roadmap
bsummary(df)  resumo rápido (shape, tipos, nulos, head).

bgroup(df, by, agg)  agrupamentos mais fáceis.

bexport(df, path)  salvar CSV/Excel/Parquet sem dor.

Sugestões são bem-vindas! Abra uma issue:
https://github.com/davidcloss/bpandas/issues

📄 Licença
MIT  veja LICENSE.

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

bpandas-0.1.7.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

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

bpandas-0.1.7-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file bpandas-0.1.7.tar.gz.

File metadata

  • Download URL: bpandas-0.1.7.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for bpandas-0.1.7.tar.gz
Algorithm Hash digest
SHA256 e087dddb8615182210836c5abbc9c455a8717da01dfaf15fd7be29531e94ed0e
MD5 1a7456d4fc84aab3083f294aabddd30e
BLAKE2b-256 28165b9ddef92c95df3b6efa158e805190d97f438ee20c5e8ed125330de70b8e

See more details on using hashes here.

File details

Details for the file bpandas-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: bpandas-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for bpandas-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 159dc753b43d821bc548e71e168165c52306469ea65ab509d4c16dc955f46ca1
MD5 3119a9cf3c8fc346404112aeb61b2bde
BLAKE2b-256 ced353c943d50c7f0e6082ef2729b7b822082a7bccf00af689f3b1a872f4e7c4

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