Quem já trabalhou, quem trabalha ou quem vai trabalhar um dia vai precisar usar o pandas. Então, nessa sequência de posts começando por esse vamos explorar essa poderosa biblioteca do Python que é amiga dos cientistas de dados. Consequentemente, falar sobre numpy
e matplotlib
serão consequências já que estão sempre trabalhando juntos.
Instalando o pandas
Vou assumir que você já tem alguma distribuição de Python instalada, caso não tenha recomendo usar o pyenv. Com ele é possível instalar todas as distribuições de Python. Eu já escrevi outro artigo aqui sobre como organizar o seu ambiente Python, você pode conferir aqui. O pacote no PyPA é o pandas
e pode ser instalado com o pip
:
pip install pandas
Tipos de dados
Pandas dtype | Python type | NumPy type | Uso |
---|---|---|---|
object | str | string_, unicode_ | Texto |
int64 | int | int_, int8, int16, int32, int64, uint8, uint16, uint32, uint64 | Números inteiros |
float64 | float | float_, float16, float32, float64 | Números de ponto flutuante |
bool | bool | bool_ | Verdadeiro ou Falso |
datetime64 | NA | datetime64[ns] | Data e tempo |
timedelta[ns] | NA | NA | Diferença entre datas |
category | NA | NA | Lista finita de textos |
Estruturas de dados
Series
Series
é tipo de dado de apenas um dimensão que podem conter diversos tipos de ojetos associados a um index
. Uma Series
pode ser criada assim:
s = pd.Series(data, index=index)
Series
é uma estrutura básica que será usada pela estrutura principal do pandas
que veremos a seguir.
Exemplo de criação de variáveis do tipo Series
:
In [1]: import numpy as np
In [2]: import pandas as pd
In [3]: s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
In [4]: s
Out[4]:
a 0.4691
b -0.2829
c -1.5091
d -1.1356
e 1.2121
dtype: float64
In [5]: s.index
Out[5]: Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
In [6]: pd.Series(np.random.randn(5))
Out[6]:
0 -0.1732
1 0.1192
2 -1.0442
3 -0.8618
4 -2.1046
dtype: float64
DataFrame
DataFrame
são basicamente matrizes e será sua principal estrutura de dados quando for trabalhar com ciência de dados.
Exemplo de criação de variáveis do tipo DataFrame
:
In [1]: import pandas as pd
In [2]: d = {'col1': [1, 2], 'col2': [3, 4]}
In [3]: df = pd.DataFrame(data=d)
In [4]: df
Out[4]:
col1 col2
0 1 3
1 2 4
Obtendo informações do seu DataFrame
com mais detalhes:
In [7]: df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 2 columns):
col1 2 non-null int64
col2 2 non-null int64
dtypes: int64(2)
memory usage: 112.0 bytes
Existem diversas formas de criar um DataFrame
, por exemplo, carregado um arquivo CSV ou o resultado de uma consulta SQL. Você pode conferir todas as formas de entrada e saída de dados do pandas aqui.
Assim como vemos no ensino médio que é possível realizar diversas operações com matrizes com o pandas isso não é diferente e existem diversas manipulações que podem ser feitas, veja aqui.
Visualização dos dados
Outro recurso muito importante ao se trabalhar com ciência de dados são as visualizações de dados, o pandas em um conjunto de funções para auxiliar nesse problema, veja aqui. Essas visualizações por baixo dos panos usam o matplotlib
que é uma antiga biblioteca do Python para criação de gráficos muito usada antes no meio acadêmico. Porém, dificilmente seus projetos de ciência de dados os relatórios finais serão com essas funções. Existem diversas outras bibliotecas de visualização de dados mais elaboradas, por exemplo, seaborn e bokeh mas não vamos abordar essas bibliotecas nessa sequência de artigos agora.
Considerações finais
Nessa primeira parte a ideia foi só mostrar o que é o pandas e conceitos básicos sobre ele. Nas próximas partes vamos explorar a utilização dele e dicas. Se você tiver interesse de aprender mais logo recomendo a trilha de Data Science com Python da DataCamp.
O pandas não é a única biblioteca do Python para esse tipo de manipulações de dados, outra concorrente é o Dask.