Boas Shiro! Tudo bem? Espero que sim!
Há uma forma bastante elegante de resolver esse problema. Vou demonstrar usando a função pq.query()
, o operador mod (ou resto de uma divisão exata) e o index.
Para demonstrar, vou usar uma base de dados que encontrei sobre sistemas operacionais mais populares.
Vamos ao código:
dados = pd.read_csv('https://raw.githubusercontent.com/pedrohcmds/alura_testes/main/os%20(1).csv')
dados.head()
| date | name | value |
---|
0 | 2003-03-01 | Mac | 1.8 |
1 | 2003-03-01 | Linux | 2.2 |
2 | 2003-03-01 | Win95 | 0.8 |
3 | 2003-03-01 | WinNT | 6.6 |
4 | 2003-03-01 | Win98 | 14.8 |
Como não temos um indexador externo para os dados, vamos criar um através da função dados.reset_index(inplace=True)
, que retorna:
| index | date | name | value |
---|
0 | 0 | 2003-03-01 | Mac | 1.8 |
1 | 1 | 2003-03-01 | Linux | 2.2 |
2 | 2 | 2003-03-01 | Win95 | 0.8 |
3 | 3 | 2003-03-01 | WinNT | 6.6 |
4 | 4 | 2003-03-01 | Win98 | 14.8 |
Agora, vamos fazer a seleção dos índices múltiplos de 6. Para isso vamos usar o operador %
que nos retorna o resto de uma divisão exata.
Se usarmos index % 6
, ele nos retornará 0 apenas quando o número for múltiplo de 6. É essa lógica que vamos aplicar:
dados.query('index%6 == 0')
Que nos retorna:
| index | date | name | value |
---|
0 | 0 | 2003-03-01 | Mac | 1.8 |
6 | 6 | 2003-03-01 | WinXP | 29.1 |
12 | 12 | 2003-05-01 | Win2000 | 41 |
18 | 18 | 2003-07-01 | Win98 | 12.6 |
24 | 24 | 2003-09-01 | WinNT | 4.1 |
Assim, temos apenas as observações que são múltiplas de 6.
Espero ter ajudado.
Bons estudos!