In [ ]:
import numpy as np
import pandas as pd
In [ ]:
a = pd.Series([20, 50, 190, 11, 76])
a
Os dados em uma série podem conter um índice, permitindo uma otimização no acesso dos dados
In [ ]:
dados = [20, 50, 190, 11, 76]
rotulos = ['a', 'b', 'c', 'd', 'e']
b = pd.Series(dados, index=rotulos)
b
Além disso, o índice pode ser utilizado para dar uma semântia ao dado de uma série, permitindo também que o mesmo seja acessado pelo índice atribuído
In [ ]:
print(a[2])
print(b[2])
print(b['c'])
As Series também possuem um método de transformação, conforme apresentado na aula anterior. Esse método chama-se apply: ele recebe uma função que será aplicada sobre todos os elementos da Serie, retornando então uma Serie com os resultados
In [ ]:
a.apply(lambda x: 2*x)
In [ ]:
matriz = np.array([[1, 2, 3], [4, 5, 6]])
nomes_linhas = ['L1', 'L2']
nomes_cols = ['C1', 'C2', 'C3']
df = pd.DataFrame(matriz, index=nomes_linhas, columns=nomes_cols)
df
Para fins de exportação, um DataFrame pode ser representado em diversos formatos
In [ ]:
print(df.to_latex()) # latex
In [ ]:
print(df.to_csv(index=False)) #csv
In [ ]:
print(df.to_json()) # JSON
In [ ]:
print(df.to_html()) #HTML
Enquanto em uma Serie utilizamos os colchetes ([]) para acessar um elemento em um certo índice, no DataFrame o operador refere-se à uma Serie, permitindo acessá-la, sobrescrevê-la ou adicionar uma nova
In [ ]:
df['C3']
In [ ]:
df['C4'] = [1, 0]
df
In [ ]:
df['C4'] = [4, 7]
df
Um DataFrame também pode ser transposto, ou seja, as labels das suas colunas viram índices e os índices viram as novas colunas
In [ ]:
df.transpose()
Podemos também ordenar as linhas do DataFrame a partir de uma de suas colunas
In [ ]:
df.sort_values(by='C4', ascending=False)
Plataforma Kaggle - Competições de Ciências de Dados
Titanic: Machine Learning from Disaster
Nela, são providenciadas diversas informações sobre os passageiros, como idade, sexo, cabine, valor do tíquete pago, entre outros.
O pandas possui funções pré-definidas para a leitura de alguns formatos de arquivos.
In [ ]:
df = pd.read_csv('titanic.csv')
df.head() # 5 primeiras linhas
In [ ]:
df.tail() # últimas 5 linhas
In [ ]:
df.columns # colunas do dataframe
In [ ]:
df.describe() # calcula estatísticas para cada coluna numérica do DataFrame
O operador colchetes ([]) do pandas também pode ser usado como uma filtragem, ou seja, dada uma condição (ou predicado), ele retorna apenas as linhas do DataFrame que satisfaçam o predicado.
OBS: escrever um predicado nesse operador nem sempre é tão simples quanto um predicado Python comum
In [ ]:
df[df.Sex == "female"]
O DataFrame permite também que sejam relizadas contagens sobre os valores presentes nas séries, permitindo assim analizarmos a ocorrência de certos dados categóricos
In [ ]:
df['Sex'].value_counts()
In [ ]:
df['Survived'].apply(lambda s: "Yes" if s == 1 else "No").value_counts()
Por último mas nunca menos importante, podemos agrupar as linhas do DataFrame a partir de uma coluna e operar sobre os grupos criados
In [ ]:
df.groupby('Sex')['Survived'].value_counts()
Alguns exercícios opcionais para aprimorar suas habilidades com pandas
In [ ]: