Para selecionar uma única coluna passamos o nome da coluna como um índice do dataframe. Já vimos exemplos de como fazer isso nos tutoriais passados. Quando estamos trabalhando com um dataframe é possível que nem todos os dados que estejam ali nos interessem. Podemos resolver isso selecionando as colunas que vamos utilizar.
Nesse post vamos aprender a como selecionar duas colunas do dataframe filmes.csv.
Como selecionar duas colunas de um dataframe
Primeiro vamos importar o dataframe para uma variável. E depois criar uma lista com os nomes das colunas que pretendemos trabalhar:
>>> import pandas as pd >>> filmes = pd.read_csv('filmes.csv') >>> titulos = filmes[ ... [ ... 'titulo_original', ... 'titulo_brasil' ... ] ... ] >>> titulos.head() titulo_original titulo_brasil 0 PREÇO DA PAZ O PREÇO DA PAZ O 1 CARTOMANTEA CARTOMANTEA 2 BLACK & WHITE VOL. 9 BLACK & WHITE VOL. 9 3 THE GURU O GURU DO SEXO 4 QUIET AMERICAN O AMERICANO TRANQUILO
Em algumas situações é preciso selecionar colunas de um dataframe. Utilizando índice o resultado pode ser uma série ou um dataframe. Quando passamos, como índice, uma lista com um único item, o resultado será um dataframe. E passando uma string o resultado será uma série.
>>> type(filmes[['titulo_original']]) <class 'pandas.core.frame.DataFrame'> >>> type(filmes['titulo_original']) <class 'pandas.core.series.Series'>
Uma alternativa ao índice, para selecionar colunas, é o atributo loc. Com esse atributo precisamos selecionar as linhas e passar o nome da coluna que queremos selecionar. Usaremos o seletor de dois pontos para selecionar todas as linhas. Se quisermos um dataframe passamos o nome como uma lista e para série passamos uma string:
>>> type(filmes.loc[:, ['titulo_brasil']]) <class 'pandas.core.frame.DataFrame'> >>> type(filmes.loc[:, 'titulo_brasil']) <class 'pandas.core.series.Series'>
Como funciona…
Utilizando o operador de índice temos bastante flexibilidade. Com ele podemos utilizar diferentes objetos. Quando passamos uma lista é retornado um dataframe com todas as colunas passadas na lista. Uma coisa interessante é que o novo dataframe respeita a ordem da lista, ou seja, se queremos mudar a posição de uma coluna podemos fazer isso trocando a ordem dos nomes na lista. Se passarmos uma string recebemos uma série.
No Segundo exemplo, vimos como podemos criar um dataframe com uma única coluna a partir de um dataframe. O mesmo acontece com a série.
No terceiro exemplo, aprendemos como criar uma série e um dataframe com o atributo loc
.
Tem mais...
Um problema que utilizar o operador de índice pode causar é o de legibilidade. Isso acontece quando passamos uma lista muito longa. Para resolver esse problema podemos criar uma variável do tipo lista:
>>> colunas = [ ... 'titulo_brasil', ... 'titulo_original' ... ] >>> titulos = filmes[colunas] >>> titulos titulo_brasil titulo_original 0 PREÇO DA PAZ O PREÇO DA PAZ O 1 CARTOMANTEA CARTOMANTEA 2 BLACK & WHITE VOL. 9 BLACK & WHITE VOL. 9 3 O GURU DO SEXO THE GURU 4 O AMERICANO TRANQUILO QUIET AMERICAN ... ... ... 9257 ROCK OF AGES: O FILME ROCK OF AGES 9258 MATRIX THE MATRIX 9259 MILITARY WIVES MILITARY WIVES 9260 ROBERTO CARLOS EM JERUSALÉM ROBERTO CARLOS EM JERUSALÉM 9261 O POÇO O POÇO [9262 rows x 2 columns] >>> filmes.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 9262 entries, 0 to 9261 Data columns (total 9 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 indice 9262 non-null int64 1 codigo_obra 9262 non-null int64 2 titulo_original 9262 non-null object 3 titulo_brasil 9262 non-null object 4 ano_producao 9259 non-null float64 5 diretor 9262 non-null object 6 razao_social_requerente 9262 non-null object 7 cnpj_requerente 9262 non-null object 8 data_exibicao 9262 non-null object dtypes: float64(1), int64(2), object(6) memory usage: 434.2+ KB
Com o exemplo acima podemos perceber que a ordem das colunas foi alterada. A causa disso é a ordem em que os nomes das colunas foram colocados na lista.
0 comentários:
Postar um comentário