Eu acho a documentação do Pandas sensacional e tem um item que ajudou muito em converter meu raciocínio forjado no SQL para os objetos do Pandas.
Estou falando da página “Comparison with other tools”, que além do SQL mostra exemplos de R, SAS e Stata de forma simples e direta.
Vou mostrar alguns exemplos, mas recomendo a leitura diretamente na documentação para uma visão mais abrangente.
Select
Com certeza, a primeira palavra que digitamos quando começamos no SQL. Com este comando de DML, buscamos selecionar informações da base de dados. Podemos informar do SGDB quais as colunas a serem retornadas ou trazer todas usando o popular select * from table
. No exemplo abaixo, buscamos algumas colunas da tabela tips
, limitando a 5 linhas de retorno:
SELECT total_bill, tip, smoker, time FROM tips LIMIT 5;
No Pandas o mesmo resultado é obtido passa uma lista de nomes de colunas para nosso DataFrame:
In [6]: tips[['total_bill', 'tip', 'smoker', 'time']].head(5) Out[6]: total_bill tip smoker time 0 16.99 1.01 No Dinner 1 10.34 1.66 No Dinner 2 21.01 3.50 No Dinner 3 23.68 3.31 No Dinner 4 24.59 3.61 No Dinner
Where
As vezes esquecido nos updates e deletes (brincadeira!), a cláusula WHERE no SQL especifica que uma instrução deve afetar apenas as linhas que atendem aos critérios especificados. No exemplo abaixo, queremos ver todas as linhas da tabela tips
onde o time
for igual a dinner
.
SELECT * FROM tips WHERE time = 'Dinner' LIMIT 5;
No Pandas, o DataFrame pode ser filtrado de várias maneiras. A mais intuitiva é usando a indexação booleana, que não vem ao caso agora. Vamos ao código:
In [8]: tips[tips['time'] == 'Dinner'].head(5) Out[8]: total_bill tip sex smoker day time size 0 16.99 1.01 Female No Sun Dinner 2 1 10.34 1.66 Male No Sun Dinner 3 2 21.01 3.50 Male No Sun Dinner 3 3 23.68 3.31 Male No Sun Dinner 2 4 24.59 3.61 Female No Sun Dinner 4
Esse post tá ficando maior do que eu imaginei. Vou quebra-lo em algumas outras partes para não cansar 😁
Em seguida, vou trazer exemplos de GROUP BY, JOIN, UNION, funções de agregação, UPDATE e DELETE.
Até breve!