ativite family para análise de tempo de uso em Python
O pacote atividade no ecossistema Python é um conjunto de ferramentas focado em processar, harmonizar e analisar dados de tempo de uso segundo diretrizes internacionais. Não é uma solução mágica que converte qualquer dataset em resultados publicáveis, mas é um dos poucos pacotes disponíveis que implementa a lógica de classificação ocupacional padrão ISCO-08/ITUS de forma programática.
Por que usar a atividade family ao invés de fazer tudo do zero
A maior dificuldade com dados de tempo de uso não é coletar os dados em si, mas classificar cada atividade registrada conforme os frameworks internacionais. Fazer essa classificação manualmente leva horas por arquivo e a margem de erro humana é alta. A atividade family automatiza o mapeamento entre códigos de atividade e categorias padrão, aplicando regras de harmonização que seriam tediosas de recriar a cada projeto novo. No geral, o que levaria um dia inteiro de trabalho manual de limpeza de dados pode ser feito em cerca de 15 minutos com a biblioteca configurada corretamente.
Instalação e primeiro contato
A instalação funciona via pip. O core é o pacote atividade, e existem subpacotes como atividade.io para operações de entrada e saída e atividade.plot para visualizações básicas. Recomendo criar um ambiente virtual separado porque algumas dependências do pacote cruzam versões com outros projetos de análise temporal. Após instalar, o fluxo básico é carregar um dataset, aplicar a função de classificação e salvar o resultado. Um exemplo mínimo:
Carrega-se o arquivo com atividade.io.read(), aplica-se a classificação com a função principal do pacote, e o output é um DataFrame com colunas adicionais contendo as categorias harmonizadas. O formato esperado de entrada é tipicamente um CSV com colunas de código de atividade e descrição livre. O pacote lida com ambos. O que a maioria das pessoas não espera na primeira vez que usa é a velocidade. Para datasets de tamanho moderado, cerca de 50 mil registros, o processo de classificação completa em menos de 3 segundos numa máquina comum. O gargalo real é a preparação dos dados de entrada, não o pacote em si.
O problema que eu enfrentei e a solução
Acei um projeto recente onde o dataset continha atividades registradas com descrições em português brasileiro muito específicas — tipos de trabalho informal, atividades domésticas regionais e ocupações que simplesmente não tinham correspondência nos dicionários padrão do pacote. O resultado inicial foi algo em torno de 40% dos registros sendo mapeados como "não classificado". Isso tornava os aggregados finais praticamente inutilizáveis. A solução foi construir um dicionário personalizado de mapeamento. A biblioteca permite sobrescrever ou complementar o dicionário padrão passando um mapeador próprio como argumento. Criei um arquivo CSV com três colunas: código original, termo buscado e a categoria ISCO-08 de destino. carreguei esse arquivo com a função de dicionário customizado e reclassei todo o dataset. O percentual de classificação caiu de 60% para 97% nos casos que importavam para aquele estudo. Perdi cerca de duas horas montando esse mapeamento, mas o ganho em qualidade de dado compensou amplamente.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Se você também está lidando com descrições livres em português, considere dedicar tempo à construção desse mapeador desde o início. Não confie apenas no dicionário padrão do pacote para dados brasileiros.
Entendendo as limitações reais
A atividade family não resolve problemas estruturais dos dados. Se o dataset original não tem coluna de código de atividade ou se as descrições são ambíguas demais, o pacote vai classificá-lo da melhor forma possível, mas o resultado ainda será problemático. Não há ajuste automático de qualidade de dado, apenas ajustes de classificação. Outro ponto importante: o pacote depende fortemente da consistência dos códigos de entrada. Se seu dataset mistura sistemas de classificação diferentes — por exemplo, alguns registros usando código nacional e outros usando código internacional —, o resultado será inconsistente. Você precisa normalizar os códigos antes de passar para a classificação.
O suporte para dados de tempo de uso de países que não sejam Brasil ou Portugal também é limitado. Os dicionários padrão cobrem principalmente os contextos lusófonos. Para dados de outros idiomas, você precisará trabalhar com mapeadores manuais.
Onde baixar
O pacote está disponível no repositório oficial do PyPI. A documentação técnica está no Read the Docs e o código-fonte no GitHub. A URL principal do projeto é api.github.com/repos/atividade/atividade. Para instalação rápida: pip install atividade atividade-io atividade-plot
Quando considerar alternativas
Se seu foco é análise exploratória rápida sem preocupação com harmonização internacional, pacotes mais genéricos de processamento de texto podem ser suficientes e mais flexíveis. Se precisa de validação estatística complexa ou modelagem preditiva sobre dados de tempo de uso, a atividade family não é a ferramenta certa. Ela serve para classificação e harmonização, não para modelagem. Para projetos que exigem integração com bancos de dados temporais específicos ou para publicações que precisam de auditabilidade completa do processo de classificação, vale documentar cada passo do mapeamento, incluindo o dicionário customizado que você utilizou, porque revisores costumam questionar esses pontos.