DataFrameIt
Enriqueça DataFrames com LLMs de forma simples e estruturada.
DataFrameIt processa textos em DataFrames usando Modelos de Linguagem (LLMs) e extrai informações estruturadas definidas por modelos Pydantic.
Documentação Completa | Referência para LLMs
Instalação
pip install dataframeit[google] # Google Gemini (recomendado)
pip install dataframeit[openai] # OpenAI
pip install dataframeit[anthropic] # Anthropic Claude
Configure sua API key:
export GOOGLE_API_KEY="sua-chave" # ou OPENAI_API_KEY, ANTHROPIC_API_KEY
Exemplo Rápido
from pydantic import BaseModel
from typing import Literal
import pandas as pd
from dataframeit import dataframeit
# 1. Defina o que extrair
class Sentimento(BaseModel):
sentimento: Literal['positivo', 'negativo', 'neutro']
confianca: Literal['alta', 'media', 'baixa']
# 2. Seus dados
df = pd.DataFrame({
'texto': [
'Produto excelente! Superou expectativas.',
'Péssimo atendimento, nunca mais compro.',
'Entrega ok, produto mediano.'
]
})
# 3. Processe!
resultado = dataframeit(df, Sentimento, "Analise o sentimento do texto.")
print(resultado)
Saída:
| texto | sentimento | confianca |
|---|---|---|
| Produto excelente! ... | positivo | alta |
| Péssimo atendimento... | negativo | alta |
| Entrega ok... | neutro | media |
Funcionalidades
- Múltiplos providers: Google Gemini, OpenAI, Anthropic, Cohere, Mistral via LangChain
- Múltiplos tipos de entrada: DataFrame, Series, list, dict
- Saída estruturada: Validação automática com Pydantic
- Resiliência: Retry automático com backoff exponencial
- Performance: Processamento paralelo, rate limiting configurável
- Busca web: Integração com Tavily para enriquecer dados
- Tracking: Monitoramento de tokens e métricas de throughput
- Configuração per-field: Prompts e parâmetros de busca personalizados por campo (v0.5.2+)
Configuração Per-Field (Novo em v0.5.2)
Configure prompts e parâmetros de busca específicos para cada campo usando json_schema_extra:
from pydantic import BaseModel, Field
class MedicamentoInfo(BaseModel):
# Campo com prompt padrão
principio_ativo: str = Field(description="Princípio ativo do medicamento")
# Campo com prompt customizado (substitui o prompt base)
doenca_rara: str = Field(
description="Classificação de doença rara",
json_schema_extra={
"prompt": "Busque em Orphanet (orpha.net). Analise: {texto}"
}
)
# Campo com prompt adicional (append ao prompt base)
avaliacao_conitec: str = Field(
description="Avaliação da CONITEC",
json_schema_extra={
"prompt_append": "Busque APENAS no site da CONITEC (gov.br/conitec)."
}
)
# Campo com parâmetros de busca customizados
estudos_clinicos: str = Field(
description="Estudos clínicos relevantes",
json_schema_extra={
"prompt_append": "Busque estudos clínicos recentes.",
"search_depth": "advanced",
"max_results": 10
}
)
# Requer search_per_field=True
resultado = dataframeit(
df,
MedicamentoInfo,
"Analise o medicamento: {texto}",
use_search=True,
search_per_field=True,
)
Opções disponíveis em json_schema_extra:
| Opção | Descrição |
|---|---|
prompt ou prompt_replace |
Substitui completamente o prompt base |
prompt_append |
Adiciona texto ao prompt base |
search_depth |
"basic" ou "advanced" (override per-field) |
max_results |
Número de resultados de busca (1-20) |
Documentação
- Início Rápido
- Guias
- Referência da API
- Referência para LLMs - Página compacta otimizada para assistentes de código
Exemplos
Veja a pasta example/ para notebooks Jupyter com casos de uso completos.
Licença
MIT
Release files for dataframeit 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dataframeit-0.6.0.tar.gz | 42.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dataframeit-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 89.9 kB
Release files / dataframeit-0.6.0.tar.gz
| Download URL | dataframeit-0.6.0.tar.gz |
|---|---|
| Size | 42.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
902a1e524849c30d0568345d353eb7a707805b8856ab0c7f8c05909f15057bc3
|
|
BLAKE2b-256 checksum How to use checksums |
de81777e748ced32c5b74a96a4e899c2853876d0e5540888b4b592b2176112a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / dataframeit-0.6.0-py3-none-any.whl
| Download URL | dataframeit-0.6.0-py3-none-any.whl |
|---|---|
| Size | 47.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3d06b5c2e02ceb0ed74053e9c5de97cf5cabfc2dca18da95898835039e9a0951
|
|
BLAKE2b-256 checksum How to use checksums |
990045ee9306853c70b0e2f4bd42a250731251417a7cdd09522da2075fa87736
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|