Série pandas é um array rotulado unidimensional capaz de conter dados de qualquer tipo (inteiro, string, float, objetos python, etc.). Os rótulos dos eixos são chamados coletivamente de índice. Uma série pandas nada mais é do que uma coluna em uma planilha do Excel.
Os rótulos não precisam ser exclusivos, mas devem ser do tipo hashable. O objeto é compatível com indexação inteira e baseada em rótulo e fornece uma série de métodos para executar operações envolvendo o índice.
Neste artigo, estamos usando o arquivo nba.csv.
Teremos uma breve visão sobre todas essas operações básicas que podem ser realizadas no Pandas série:
- Criando uma série
- Elemento de acesso da série
- Indexação e seleção de dados em série
- Operação binária na série
- Operação de conversão em série
Criando uma série
No mundo real, uma série Pandas será criada carregando os conjuntos de dados do armazenamento existente, o armazenamento pode ser banco de dados SQL, arquivo CSV e arquivo Excel. As séries Pandas podem ser criadas a partir de listas, dicionário e de um valor escalar, etc. As séries podem ser criadas de diferentes maneiras, aqui estão algumas maneiras pelas quais criamos uma série:
Criando uma série de array: Para criar uma série de array, temos que importar o módulo numpy
e usar a função array()
.
# importando pandas com o alias pd import pandas as pd # importando numpy com o alias np import numpy as np # uma matriz simples data = np.array(['A', 'c', 'e', 'r','v', 'o']) ser = pd.Series(data) print(ser)
Saída:
0 A 1 c 2 e 3 r 4 v 5 o dtype: object
Criação de uma série a partir de uma listas:
Para criar uma série a partir de uma lista, temos que primeiro criar uma lista e depois podemos criar uma série da lista.
import pandas as pd # uma lista simples lista = ['A', 'c', 'e', 'r','v', 'o'] # criando uma série a partir de uma lista ser = pd.Series(lista) print(ser)
Saída:
0 A 1 c 2 e 3 r 4 v 5 o dtype: object
Acessando elementos de uma série
Existem duas maneiras pelas quais podemos acessar o elemento da série, são elas:
- Acessando Elemento da Série com Posição.
- Acessando elemento usando rótulo (índice)
Acessando elemento de uma série com a posição: Para acessar o elemento da série refere-se ao número do índice. Use o operador de índice []
para acessar um elemento em uma série. O índice deve ser um número inteiro. Para acessar vários elementos de uma série, usamos a operação Slice.
# Código para acessar os 5 # primeiros elementos de uma série do pandas import pandas as pd import numpy as np # criando uma matriz simples data = np.array(['A', 'c', 'e', 'r', 'v', 'o', ' ', 'L', 'i', 'm', 'a']) ser = pd.Series(data) # Mostra os cinco primeiros elementos da série print(ser[:5])
Saída:
0 A 1 c 2 e 3 r 4 v dtype: object
Acessando elemento usando rótulo (índice): Para acessar um elemento da série, temos que definir valores por rótulo de índice. Uma série é como um dicionário de tamanho fixo em que você pode obter e definir valores por rótulo de índice.
import pandas as pd import numpy as np # Criando matrizes simples data = np.array(['A', 'c', 'e', 'r', 'v', 'o', ' ', 'L', 'i', 'm', 'a']) ser = pd.Series(data, index=[10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]) # acessando elemento pelo índice print(ser[17])
Saída:
L
Indexação e seleção de dados em série
Indexar em pandas significa simplesmente selecionar dados específicos de uma série. A indexação pode significar selecionar todos os dados, alguns dos dados de colunas específicas. A indexação também pode ser conhecida como Seleção de subconjunto.
Indexando uma série usando o operador de indexação []
: O operador de indexação é usado para referir-se aos colchetes após um objeto. Os indexadores .loc
e .iloc
também usam o operador de indexação para fazer seleções. Neste operador de indexação para se referir a df[]
.
import pandas as pd # Criando um dataframe df = pd.read_csv("nba.csv") ser = pd.Series(df['Name']) data = ser.head(10) data
Saída:
0 Avery Bradley 1 Jae Crowder 2 John Holland 3 R.J. Hunter 4 Jonas Jerebko 5 Amir Johnson 6 Jordan Mickey 7 Kelly Olynyk 8 Terry Rozier 9 Marcus Smart Name: Name, dtype: object
Agora acessamos o elemento da série usando o operador de índice []
.
# Usando o operador de índice data[3:6]
Saída:
3 R.J. Hunter 4 Jonas Jerebko 5 Amir Johnson Name: Name, dtype: object
Indexando uma série usando .loc[]
: Esta função seleciona dados referindo-se ao índice explícito. O indexador df.loc
seleciona dados de uma maneira diferente do que apenas o operador de indexação. Ele pode selecionar subconjuntos de dados.
import pandas as pd # Criando o dataframe df = pd.read_csv("nba.csv") ser = pd.Series(df['Name']) data = ser.head(10) data
Saída:
0 Avery Bradley 1 Jae Crowder 2 John Holland 3 R.J. Hunter 4 Jonas Jerebko 5 Amir Johnson 6 Jordan Mickey 7 Kelly Olynyk 8 Terry Rozier 9 Marcus Smart Name: Name, dtype: object
Agora acessamos o elemento da série usando a função .loc[]
.
# usando a função .loc[] data.loc[3:6]
Saída:
3 R.J. Hunter 4 Jonas Jerebko 5 Amir Johnson 6 Jordan Mickey Name: Name, dtype: object
Indexando uma série usando .iloc[]
: Esta função nos permite recuperar dados por posição. Para fazer isso, precisamos especificar as posições dos dados que queremos. O indexador df.iloc
é muito semelhante ao df.loc
, mas usa apenas localizações de inteiros para fazer suas seleções.
import pandas as pd # Criando um dataframe df = pd.read_csv("nba.csv") ser = pd.Series(df['Name']) data = ser.head(10) data
Saída:
0 Avery Bradley 1 Jae Crowder 2 John Holland 3 R.J. Hunter 4 Jonas Jerebko 5 Amir Johnson 6 Jordan Mickey 7 Kelly Olynyk 8 Terry Rozier 9 Marcus Smart Name: Name, dtype: object
Agora acessamos o elemento de Series usando a função .iloc[]
.
# usando a função .iloc[] data.iloc[3:6]
Saída:
3 R.J. Hunter 4 Jonas Jerebko 5 Amir Johnson Name: Name, dtype: object
Operação binária na série
Podemos realizar operações binárias em séries como adição, subtração e muitas outras operações. Para realizar a operação binária em série, temos que usar algumas funções como .add()
, .sub()
etc.
Código #1:
import pandas as pd # Criando uma série data = pd.Series([5, 2, 3,7], index=['a', 'b', 'c', 'd']) # Criando outra série data1 = pd.Series([1, 6, 4, 9], index=['a', 'b', 'd', 'e']) print(data, "\n\n", data1)
Saída:
a 5 b 2 c 3 d 7 dtype: int64 a 1 b 6 d 4 e 9 dtype: int64
Agora adicionamos duas séries usando a função .add()
.
# Adicionando duas séries usando a função .add() data.add(data1, fill_value=0)
Saída:
a 6.0 b 8.0 c 3.0 d 11.0 e 9.0 dtype: float64
Código #2:
import pandas as pd # Criando uma série data = pd.Series([5, 2, 3,7], index=['a', 'b', 'c', 'd']) # Criando outra série data1 = pd.Series([1, 6, 4, 9], index=['a', 'b', 'd', 'e']) print(data, "\n\n", data1)
Saída:
a 5 b 2 c 3 d 7 dtype: int64 a 1 b 6 d 4 e 9 dtype: int64
Agora subtraímos duas séries usando a função .sub()
.
# Subtraindo duas séries usando a função .sub() data.sub(data1, fill_value=0)
Saída:
a 4.0 b -4.0 c 3.0 d 3.0 e -9.0 dtype: float64
Operação de conversão em série
Na operação de conversão, realizamos várias operações, como alterar o tipo de dados de uma série, alterar uma série para listar etc. Para realizar a operação de conversão, temos várias funções que ajudam na conversão, como .astype()
, .tolist()
etc.
Código #1:
# Programa Python usando astype # para converter um tipo de dados de série import pandas as pd # Cria o dataframe a partir de um arquivo css data = pd.read_csv("nba.csv") # descartando colunas de valor nulo para evitar erros data.dropna(inplace = True) # armazenar dtype antes de converter before = data.dtypes # convertendo dtypes usando astype data["Salary"]= data["Salary"].astype(int) data["Number"]= data["Number"].astype(str) # armazenar dtype após a conversão after = data.dtypes # Imprime para comparação print("Antes da conversão\n", before, "\n") print("Depois da conversão\n", after, "\n")
Saída:
Antes da conversão Name object Team object Number float64 Position object Age float64 Height object Weight float64 College object Salary float64 dtype: object Depois da conversão Name object Team object Number object Position object Age float64 Height object Weight float64 College object Salary int32 dtype: object
Código #2:
# Programa python para converter uma série pasdas numa lista import pandas as pd import re # Criando um dataframe a partir de uma arquivo csv data = pd.read_csv("nba.csv") # removendo valores nulos para evitar erros data.dropna(inplace = True) # guardando dtype antes da operação dtype_before = type(data["Salary"]) # Convertendo para lista salary_list = data["Salary"].tolist() # guardando dtype depois da operação dtype_after = type(salary_list) # imprimindo dtypes print("Tipo de dado antes da conversão = {}\nTipode dado depois da conversão = {}" .format(dtype_before, dtype_after)) # monstrando lista salary_list
Saída:
[7730337.0, 6796117.0, 1148640.0, 1170960.0, 2165160.0, 1824360.0, 3431040.0, 2569260.0, 6912869.0, 3425510.0, 1749840.0, 2616975.0, 845059.0, 1500000.0, 1335480.0, 6300000.0, 134215.0, 1500000.0, 19689000.0, 1140240.0, 947276.0, 981348.0, 947276.0, 947276.0, 11235955.0, 8000000.0, 1635476.0, 22875000.0, 845059.0, 845059.0, 1572360.0, 12650000.0, 3750000.0, 1636842.0, 4000000.0, 167406.0, 947276.0, 1000000.0, 4626960.0, 845059.0, 1074169.0, 6500000.0, 2144772.0, 525093.0, 3457800.0, 4582680.0, 947276.0, 2869440.0, 947276.0, 525093.0, 13600000.0, 10050000.0, 2500000.0, 7000000.0, 12000000.0, 6268675.0, 650000.0, 3553917.0, 245177.0, 1509360.0, 3873398.0, 13800000.0, 947276.0, 11370786.0, 2008748.0, 14260870.0, 11710456.0, 1131960.0, 845059.0, 1270964.0, 3815000.0, 15501000.0, 1100602.0, 111444.0, 5675000.0, 525093.0, 9650000.0, 18907726.0, 1100602.0, 19689000.0, 947276.0, 21468695.0, 3376000.0, 7085000.0, 3110796.0, 1159680.0, 3000000.0, 845059.0, 700000.0, 845059.0, 15592217.0, 1724250.0, 1155600.0, 3132240.0, 5103120.0, 981348.0, 947276.0, 5219169.0, 13500000.0, 2127840.0, 206192.0, 1160160.0, 981348.0, 13500000.0, 3807120.0, 1035000.0, 55722.0, 947276.0, 5500000.0, 2041080.0, 83397.0, 981348.0, 1015421.0, 1449187.0, 3398280.0, 5013559.0, 15851950.0, 947276.0, 525093.0, 12403101.0, 7700000.0, 3156600.0, 845059.0, 9500000.0, 845059.0, 2250000.0, 16407500.0, 4500000.0, 8500000.0, 947276.0, 2380440.0, 1015421.0, 13400000.0, 1391160.0, 20093064.0, 1535880.0, 1147276.0, 8193029.0, 16407501.0, 947276.0, 947276.0, 1276000.0, 19689000.0, 111196.0, 8988765.0, 14260870.0, 2100000.0, 2500000.0, 6500000.0, 2170465.0, 111444.0, 1252440.0, 2891760.0, 845059.0, 3272091.0, 16000000.0, 600000.0, 13913044.0, 2841960.0, 6270000.0, 5000000.0, 3000000.0, 4050000.0, 1007026.0, 17120106.0, 8000000.0, 4000000.0, 1358880.0, 211744.0, 1100000.0, 7000000.0, 2357760.0, 845059.0, 1007026.0, 3000000.0, 2399040.0, 947276.0, 1662360.0, 2943221.0, 8000000.0, 14700000.0, 16407500.0, 295327.0, 845059.0, 5152440.0, 2109294.0, 6600000.0, 1733040.0, 1449000.0, 4290000.0, 1100602.0, 3950313.0, 4053446.0, 2085671.0, 16407500.0, 1270964.0, 15361500.0, 845059.0, 947276.0, 5378974.0, 8193030.0, 306527.0, 6486486.0, 8229375.0, 1646400.0, 200600.0, 15756438.0, 1000000.0, 2489530.0, 3189794.0, 947276.0, 1404600.0, 5158539.0, 5000000.0, 3542500.0, 4088019.0, 9588426.0, 700902.0, 845059.0, 1201440.0, 1230840.0, 9638555.0, 9000000.0, 5464000.0, 8500000.0, 1100602.0, 3036927.0, 2850000.0, 7070730.0, 169883.0, 1164858.0, 845059.0, 10734586.0, 845059.0, 1320000.0, 15514031.0, 1015421.0, 10595507.0, 55722.0, 3382023.0, 19689000.0, 1142880.0, 947276.0, 5250000.0, 10000000.0, 16407500.0, 200600.0, 250750.0, 3578947.0, 525093.0, 1499187.0, 2000000.0, 1304520.0, 2854940.0, 12000000.0, 1000000.0, 5746479.0, 18671659.0, 947276.0, 525093.0, 3333333.0, 8000000.0, 947276.0, 189455.0, 947276.0, 525093.0, 6110034.0, 2612520.0, 6331404.0, 3034356.0, 5675000.0, 2139000.0, 12000000.0, 7000000.0, 4204200.0, 22192730.0, 10151612.0, 2854940.0, 261894.0, 845059.0, 5543725.0, 525093.0, 20000000.0, 981348.0, 2481720.0, 947276.0, 4171680.0, 845059.0, 1294440.0, 2380593.0, 5192520.0, 2505720.0, 4300000.0, 11250000.0, 5000000.0, 4000000.0, 5694674.0, 4375000.0, 561716.0, 3300000.0, 273038.0, 8000000.0, 1920240.0, 4662960.0, 2170465.0, 1100602.0, 200600.0, 15851950.0, 2814000.0, 3000000.0, 3533333.0, 10449438.0, 11235955.0, 1584480.0, 947276.0, 4345000.0, 258489.0, 1474440.0, 1282080.0, 2148360.0, 2056920.0, 1938840.0, 947276.0, 5703600.0, 5758680.0, 2279040.0, 3750000.0, 20158622.0, 3135000.0, 1140240.0, 16407500.0, 1463040.0, 222888.0, 3344000.0, 2021520.0, 1210800.0, 4500000.0, 5138430.0, 16744218.0, 525093.0, 8042895.0, 625093.0, 947276.0, 6980802.0, 2894059.0, 6000000.0, 5016000.0, 3075880.0, 4236287.0, 2525160.0, 525093.0, 1415520.0, 2854940.0, 2637720.0, 4775000.0, 2658240.0, 9463484.0, 12000000.0, 15409570.0, 1348440.0, 981348.0, 2239800.0, 2433333.0, 947276.0]
Métodos de operação binária em série:
Função | Descrição |
---|---|
add() | O método é usado para adicionar séries ou listas de objetos com o mesmo comprimento à série do chamador. |
sub() | O método é usado para subtrair séries ou listar objetos semelhantes com o mesmo comprimento da série do chamador. |
mul() | O método é usado para multiplicar séries ou listar objetos semelhantes com o mesmo comprimento da série do chamador. |
div() | O método é usado para dividir séries ou listar objetos semelhantes com o mesmo comprimento pela série do chamador. |
sum() | Retorna a soma dos valores do eixo solicitado. |
prod() | Retorna o produto dos valores para o eixo solicitado. |
mean() | Retorna a média dos valores para o eixo solicitado. |
pow() | O método é usado para colocar cada elemento da série passada como potência exponencial da série do chamador e retornar os resultados. |
abs() | O método é usado para obter o valor numérico absoluto de cada elemento em Series / DataFrame |
cov() | O método é usado para encontrar a covariância de duas séries. |
Método da série Pandas:
Função | Descrição |
---|---|
Series() | Uma série pandas pode ser criada com o método do construtor Series() . Este método de construtor aceita uma variedade de entradas. |
combine_first() | O método é usado para combinar duas séries em uma. |
count() | Retorna o número de observações não NA / nulas na série. |
size() | Retorna o número de elementos nos dados subjacentes. |
name() | Método permite dar um nome a um objeto Série, ou seja, à coluna. |
is_unique() | O método retorna booleano se os valores no objeto forem únicos. |
idxmax() | Método para extrair as posições de índice dos valores mais altos em uma Série. |
idxmin() | Método para extrair as posições de índice dos valores mais baixos em uma Série. |
sort_values() | O método é chamado em uma série para classificar os valores em ordem crescente ou decrescente. |
sort_index() | O método é chamado em uma série pandas para classificá-lo pelo índice em vez de seus valores. |
head() | Método é usado para retornar um número especificado de linhas desde o início de uma série. O método retorna uma nova série. |
tail() | O método é usado para retornar um número especificado de linhas do final de uma série. O método retorna uma nova série. |
le() | Usado para comparar todos os elementos da série do chamador com as séries passadas. Ele retorna True para cada elemento que é Menor ou Igual ao elemento na série passada. |
ne() | Usado para comparar cada elemento da série do autor da chamada com as séries aprovadas. Ele retorna True para cada elemento que não é igual ao elemento na série passada. |
ge() | Usado para comparar cada elemento da série do autor da chamada com as séries aprovadas. Ele retorna True para cada elemento que é maior ou igual ao elemento na série passada. |
eq() | Usado para comparar cada elemento da série do autor da chamada com as séries aprovadas. Ele retorna True para cada elemento que é igual ao elemento na série passada. |
gt() | Usado para comparar duas séries e retornar o valor booleano para cada elemento respectivo. |
lt() | Usado para comparar duas séries e retornar o valor booleano para cada elemento respectivo. |
clip() | Usado para cortar o valor abaixo e acima para o valor mínimo e máximo passado. |
clip_lower() | Usado para recortar valores abaixo de um valor mínimo aprovado. |
clip_upper() | Usado para recortar valores acima de um valor máximo aprovado. |
astype() | O método é usado para alterar o tipo de dados de uma série. |
tolist() | O método é usado para converter uma série em lista. |
get() | O método é chamado em uma série para extrair valores de uma série. Esta é uma sintaxe alternativa à sintaxe tradicional de colchetes. |
unique() | Pandas unique() é usado para ver os valores únicos em uma coluna particular. |
nunique() | Pandas nunique() é usado para obter uma contagem de valores únicos. |
value_counts() | Método para contar o número de vezes que cada valor exclusivo ocorre em uma série. |
factorize() | O método ajuda a obter a representação numérica de uma matriz identificando valores distintos. |
map() | Método para unir os valores de um objeto a outro. |
between() | O método Pandas between () é usado em séries para verificar quais valores estão entre o primeiro e o segundo argumento. |
apply() | O método é chamado e alimentado com uma função Python como um argumento para usar a função em cada valor de série. Este método é útil para executar operações personalizadas que não estão incluídas no pandas ou numpy. |
Artigo traduzido por Acervo Lima de Python | Pandas Series.
0 comentários:
Postar um comentário