O documento discute a biblioteca Pandas em Python. Ele fornece uma introdução à biblioteca, incluindo como criar e manipular DataFrames, lidar com tipos de dados, importar e analisar dados, selecionar linhas e colunas, e tratar valores ausentes. Ele também discute como usar Pandas com outras bibliotecas como Scikit-Learn e StatsModels.
1. 2018/19 - 1Carlos J. Costa (ISEG)
CARLOS J. COSTA
Carlos J. Costa (2018/2019)
2. 2018/19 - 2Carlos J. Costa (ISEG)
Pandas
• https://pandas.pydata.org/
• Biblioteca open source,
• Licenciado sobre BSD
• Alto desempenho
• Fácil de utilizar
• Inclui ferramentas de estruturas de dados
e análise de dados
3. 2018/19 - 3Carlos J. Costa (ISEG)
Pandas
• DataFrame
– É uma estrutura etiquetada
– Tem colunas com tipos de dados
potencialmente diferentes
– Parecido com folha de cálculo ou tabela SQL
– É o objeto mais utilizado pelo Pandas
– Para além dos dados pode identificar ainda
as colunas (etiquetas das colunas) e índices
(etiquetas das linhas)
4. 2018/19 - 4Carlos J. Costa (ISEG)
Pandas
• Criar dataframe a partir de dicionário
import pandas as pd
d = {'col1': [1,2,1,3,1,2], 'col2': [1,2,3,4,5,6]}
df = pd.DataFrame(data=d)
df.count()
df['col1'].value_counts()
df['col1'][1]=5
5. 2018/19 - 5Carlos J. Costa (ISEG)
Pandas
• Copiar coluna
coluna1=df['col1’]
coluna1[2]=99
• Qual o resultado em coluna1 e df?
nova_coluna1 = coluna1.copy()
nova_coluna1[2]=9999
• E agora?
6. 2018/19 - 6Carlos J. Costa (ISEG)
Pandas
• No collaboratoy:
from google.colab import files
files.upload()
• Depois no final
files.download(‘nome do ficheiro')
7. 2018/19 - 7Carlos J. Costa (ISEG)
Pandas
• No computador, colocar o ficheiro de
dados na mesma pasta onde está gravado
o notebook
8. 2018/19 - 8Carlos J. Costa (ISEG)
Pandas
• Importar pandas
import pandas as pd
df = pd.read_csv(‘factbook.csv')
9. 2018/19 - 9Carlos J. Costa (ISEG)
Pandas
• Analisar informação
df.head() #cinco linhas
df.info()
df.describe()
df.columns
10. 2018/19 - 10Carlos J. Costa (ISEG)
Pandas
• DataFrame.loc
• Acede a um grupo de linhas e colunas por
etiqueta (s) ou uma matriz booleana.
• loc [] é principalmente baseado em
etiquetas, mas também pode ser usado
com uma matriz booleana.
11. 2018/19 - 11Carlos J. Costa (ISEG)
Pandas
• DataFrame.at
– Acede a um único valor para um par de etiquetas de
linha/coluna.
• DataFrame. iloc
– acede a um grupo de linhas e colunas por posição
inteira (s).
• DataFrame. Xs
– Retorna uma seção transversal (linha (s) ou coluna
(s)) da série/DataFrame.
• Série. Loc
– Acede a um grupo de valores utilizando etiquetas.
12. 2018/19 - 12Carlos J. Costa (ISEG)
Pandas
• Celulas:
df.iloc[195][0]
• Linhas:
df.iloc[[195][0]]
• Colunas:
df.loc[:,'GDPpercapita']
13. 2018/19 - 13Carlos J. Costa (ISEG)
Pandas
• Tipos de dados
df.dtypes
• Se o resultado for object há a necessidade de converter
uma coluna complete com etiqueta espefica para
numérico
df.loc[:,'GDPpercapita']=pd.to_numeric(df['GDPpercapita'],
errors='coerce’)
pd.to_numeric(argmento, errors) Errors pode ser
ignore, raise ou
coerce. Este último
converte em NAN
Pode ser lista,
tuplo, array,
série 1D
14. 2018/19 - 14Carlos J. Costa (ISEG)
Pandas
• Obviamente, se for necessário também
nas outras variáveis:
• Pode-se entretanto
df.loc[:,'GDPpercapita']=pd.to_numeric(df['GDPpercapita'],
errors='coerce')
df.loc[:,'Military_percent_GDP']=pd.to_numeric(df['Military_percent_GDP
'], errors='coerce')
df.loc[:,'Unemployment rate(%)']=pd.to_numeric(df['Unemployment
rate(%)'], errors='coerce’)
• Pode-se ver o resultado:
df.dtypes
15. 2018/19 - 15Carlos J. Costa (ISEG)
Pandas
• Criar uma nova dataframe
YX = df[['GDPpercapita','Military_percent_GDP','Unemployment
rate(%)’]]
• e
YX.dtypes
• Tudo numéricos claro…
16. 2018/19 - 16Carlos J. Costa (ISEG)
Pandas
• Eliminar missing values de toda a matriz
YX=YX.dropna()
• Criar o X e Y:
Y = YX[['GDPpercapita']]
X = YX[['Military_percent_GDP','Unemployment
rate(%)']]
17. 2018/19 - 17Carlos J. Costa (ISEG)
Pandas
• Para criar uma coluna correspondente a
internet per capita é necessário fazer
simplesmente:
df['internetpercapita']=df['Internet
users']/df['Population’]
18. 2018/19 - 18Carlos J. Costa (ISEG)
Bibliografia
• https://pandas.pydata.org/
• https://pandas.pydata.org/pandas-
docs/stable/getting_started/10min.html
• https://scikit-learn.org/
• https://scikit-learn.org/stable/index.html
• https://www.statsmodels.org/stable/index.h
tml