Looker Studio & Python, Analisando meu treino de Powerlifting
Tags: python, gym, analytics, programming
Published: 2024-05-16 19:13:49

## Dados do treino

Recentemente, descobri que o aplicativo que utilizo para registrar os dados do meu treino na academia,  permite a exportação deles para um arquivo CSV, então decidi usar esses dados para um pequeno projeto, gerando alguns relatórios.

O aplicativo que eu utilizo é o [Strong app](https://www.strong.app/) , ele permite criar registros dos treinos, adicionando o peso e a quantidade de repetições e series realizada. No próprio aplicativo é possível através da versão pró, criar algumas visualizações dos dados, mas ainda sim é uma analise limitada.
## Powerlifting 

Powerlifting é um esporte de força que consiste na execução de 3 levantamentos: agachamento, supino e terra. O treino de um powerlifter necessita também de outros exercícios acessórios que ajudam na execução dos levantamentos principais, esses acessórios são utilizados para focar em músculos específicos  e também em etapas especificas dos levantamentos principais.

Existem varias formas de desenvolver um treino voltado para força, no meu caso em especifico, sigo uma proposta de progressão de carga mais linear e com foco também em volume de repetições. **É importante acrescentar, que os treinos são desenvolvidos pelo meu treinador treinador, que é um educador físico e possui metodologias para criação desses programas de treino, e que é importante o acompanhamento de um profissional da área para evitar possíveis lesões.**

## Analise dos dados

Nessa primeira versão do relatório, criei visualizações que me ajudaram a explorar os dados gerados pelo aplicativo, por tanto pretendo realizar atualizações no painel para ver quais visualizações fazem mais sentido para as analises que pretendo fazer.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cc6wqyk8sxfy1ihoymul.png)
Na primeira pagina do relatório me preocupei em mostrar 4 métricas que julguei interessante visualizar, a média de repetições, e a carga máxima nos 3 exercícios do Powerlift, mantendo o foco também nos valores das cargas, quantidade de repetições e duração do treino, nos gráficos subsequentes.

O gráfico de rosca que mostra a porcentagem da quantidade de vezes que foram executados cada um dos exercícios, não levando em consideração a soma das repetições, evidencia os exercícios que são o foco do meu treino atual. Os gráficos de barra sobre os 3 exercícios do Powerlifting, por quantidade de volume (soma de repetições) e média de carga, refletem bem o padrão que minhas execuções costumam seguir, onde as maiores cargas se concentram no levantamento terra (Deadlift) e no agachamento (Squat).

O gráfico de barras que mostra a a quantidade de treinos com relação ao seu total de horas apresenta uma consistência no tempo de treino, com a maioria beirando o total de duas horas, pois num treino de Powerlifting é muito comum que o tempo de descanso seja bem longo, pois as cargas dos treinos são bem altas.  

A segunda pagina do relatório tem o foco na partes do corpo que foram mais treinadas, trazendo diferente visões referentes a mesma informação. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/as619bd3igahh4ugr03h.png)
Para a criação da segunda pagina do relatório, foi necessário a criação de um novo campo através de feature engineering, usando o campo *Exercise Name* e um dicionário do python com o mapeamento dos campos para a criação da coluna *body_part*. 

```python
import pandas as pd

strong = pd.read_csv('diretorio/dos/dados/strong.csv', delimiter=';')
data = strong[['Date', 'Workout Name', 'Exercise Name', 'Weight', 'Reps', 'Workout Duration']]
strong.tail()
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0hdogbe1gy5izij92h25.png)
O dicionário com o mapeamento dos dados foi gerado a partir do comando:

```python
data['Exercise Name'].value_counts().to_dict()
```

{'Squat (Barbell)': 272,
 'Bench Press (Barbell)': 195,
 'Deadlift (Barbell)': 174,
 'Triceps Pushdown (Cable - Straight Bar)': 107,
 'Bent Over Row (Barbell)': 105,
 'Leg Press': 105,
 'Overhead Press (Barbell)': 78,
 'Romanian Deadlift (Barbell)': 78,
...}

Resultado do mapeamento: 

body_part = {'Squat (Barbell)': 'Pernas',
 'Bench Press (Barbell)': 'Peitoral',
 'Deadlift (Barbell)': 'Costas',
 'Triceps Pushdown (Cable - Straight Bar)': 'Bracos',
 'Bent Over Row (Barbell)': 'Costas',
 'Leg Press': 'Pernas',
 'Overhead Press (Barbell)': 'Ombros',
 'Romanian Deadlift (Barbell)': 'Costas',
...}

Criação da seriee inserção no dataframe do pandas:

```python
data['Body part'] = data['Exercise Name'].map(body_part)
data.head()
```
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nxcx5dwnfj4vyrygx0ld.png)
Depois da criação da nova coluna, foram criadas visualizações para identificar o as partes do corpo que mais trabalharam durante a execução dos treinos. No treino atual, a parte do corpo que mais fica em evidencia é o peitoral, que é justamente a parte que tenho buscado focar nos treinos, logo em seguida as costas e as pernas.

## Conclusão

Essa é a primeira versão do relatório, pretendo fazer melhorias e atualizações nos dados e nas visualizações, quando tiver material suficiente irei fazer mais posts para registrar as alterações, também pretendo usar esse relatório para analisar meus treinos e fazer acompanhamentos de determinadas métricas.