
Pandas Series e DataFrames
Hoje eu comecei a mexer um pouco com Pandas. Eu já havia mexido com esse pacote em outro curso, mas é sempre bom rever os conceitos e aprender alguns novos.
O pacoted Pandas tem duas estruturas principais de dados
- Series
- DataFrames
Series
Series são matrizes de uma única dimensão, enquando DataFrames são matrizes de mais de uma dimensão, ou seja, bidimensionais, tridimensionais, etc.
Uma Serie tem dados e índices. Primeiramente passamos os dados e depois os índices:
1 |
ser = pd.Series([100, 'foo', 300, 'bar', 500], ['tom', 'bob', 'nancy', 'dan', 'eric']) |
Suponhamos que você queira ver os índices disponíveis; Simplesmente utilize o seguinte:
1 |
ser.index |
Agora digamos que você deseja localizar o valor de um ou mais de seus índices:
1 2 3 |
ser.loc('bob') ser.loc(['bob', 'nancy']) |
Você pode também selecionar os índices que você quiser pelo índice numérico deles:
1 |
ser[[4, 3, 1]] |
Você pode utilizar o método iloc para localizar através de um inteiro:
1 |
ser.iloc([2]) |
Além disso, você pode conferir se existe um índice dentro de uma matriz simplesmente utilizando o in.
1 |
'bob' in ser |
Você pode também fazer operações com a matriz:
Multiplicar:
1 |
ser * 2 |
Exponenciação onde existem valores numéricos:
1 |
ser[['nancy', 'eric']] ** 2 |
Enfim, você pode fazer diversas operações com as Series.
DataFrames
DataFrame do Pandas são estrutura de dados rotulados em matrizes bidimensionais. Oi? Sim, isso mesmo. O que eu disse é que ela tem um rótulo em cima da coluna, um rótulo para a linha e o valor da célula.
Vamos criar um dicionário com duas Series:
1 2 |
d = {'one': pd.Series(data=[100., 200., 300.], ['apple', 'ball', 'clock']), 'two': pd.Series([111., 222., 333., 4444.], index=['apple', 'ball', 'cerill', 'dancy'])} |
Agora vamos transformar esse dicionário em uma dataframe:
1 2 |
df = pd.DataFrame(d) df |
Para ver os índices, use a seguinte forma:
1 |
df.index |
Agora, para identificar as colunas, utilize:
1 |
df.columns |
Você pode querer criar um dataframe apenas com alguns dos itens do dicionário:
1 |
pd.DataFrame(d, index=['apple', 'dancy', 'cerill']) |
Você pode também criar um dataframe apenas com alguns itens do dicionário e com apenas algumas colunas:
1 |
pd.DataFrame(d, index=['dancy', 'ball', 'apple'], columns=['two', 'five']) |
Agora, vamos ver como criar um dataframe com uma lista de dicionários em Python:
1 2 |
data = [{'alex':1, 'joe': 2}, {{'ema': 5, 'dora': 10, 'alice': 20}}] |
Transforme em um dataframe:
1 |
pd.DataFrame(data) |
Selecione apenas alguns rótulos:
1 |
pd.DataFrame(data, index=['red', 'blue']) |
Perceba que aqui ele transforma os índices das linhas em nomes: red e blue.
Selecione apenas algumas colunas:
1 |
pd.DataFrame(data, columns=['alex', 'dora', 'ema']) |
Operações básicas com DataFrame
Mostrar os valores de one de df:
1 |
df['one'] |
Criar uma nova coluna com a multiplicação de outras duas colunas:
1 |
df['three'] = df['one'] * df['two'] |
Criar uma nova coluna com valores booleanos a depender dos valores de outra coluna:
1 |
df['booleans'] = df['one'] > 200 |
Retirar uma das colunas e guardar em uma variável:
1 |
three = df.pop('three') |
Excluir uma das colunas:
1 |
del df['two'] |
Inserir uma nova coluna:
Aqui, vamos inserir a coluna de índice 2, com o título cópia_col_um com os dados da df[‘one’].
1 |
df.insert(2, 'copia_col_um', df['one']) |
Inserir nova coluna com valores de uma coluna do DataFrame:
1 |
df['nova_coluna'] = df['one'][:2] |
Aqui, a nova coluna será populada com os valores até a linha de índice 2, sendo ela não inclusiva.
Bom, por hoje é isso 🙂
Nos vemos amanhã neste mesmo site 😀