HOWTO · Pandas
Converter a coluna Pandas DataFrame em lista
Este artigo introduz como converter a coluna Pandas DataFrame para uma lista.
Nesta página
Ao trabalhar com DataFrames do Pandas em Python, pode precisar frequentemente de converter uma coluna do seu DataFrame numa lista Python. Este processo pode ser crucial para várias tarefas de manipulação e análise de dados. Felizmente, o Pandas fornece vários métodos para o conseguir, facilitando a extração dos dados de que necessita sob a forma de lista.
Neste artigo, vamos explorar diferentes métodos para converter uma coluna de um DataFrame do Pandas numa lista Python. Demonstraremos estes métodos utilizando um DataFrame de exemplo que contém informações sobre nomes, datas de nascimento (DOB) e salários.
import pandas as pd
data = {
"Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
"DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
"Salary": ["1000", "12000", "36000", "15000", "12000"],
}
df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])
Vamos explorar quatro métodos diferentes para realizar esta conversão: utilizando o método tolist(), a função list(), a propriedade .values e a compreensão de lista.
Utilize o Método tolist() para Converter uma Coluna do DataFrame em uma Lista
Uma coluna no DataFrame do Pandas é uma Series do Pandas. Portanto, se precisarmos converter uma coluna em uma lista, podemos usar o método tolist() em uma Series. O tolist() converte a Series em uma lista.
No código abaixo, df['DOB'] retorna a Series, ou a coluna, com o nome DOB do DataFrame.
O método tolist() converte a Series em uma lista.
import pandas as pd
data = {
"Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
"DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
"Salary": ["1000", "12000", "36000", "15000", "12000"],
}
df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])
print("Pandas DataFrame:\n\n", df, "\n")
list_of_single_column = df["DOB"].tolist()
print(
"the list of a single column from the dataframe\n",
list_of_single_column,
"\n",
type(list_of_single_column),
)
Saída:
Pandas DataFrame:
Name DOB Salary
0 James 1/1/2014 1000
1 Michelina 2/1/2014 12000
2 Marc 3/1/2014 36000
3 Bob 4/1/2014 15000
4 Halena 4/1/2014 12000
the list of a single column from the dataframe
['1/1/2014', '2/1/2014', '3/1/2014', '4/1/2014', '4/1/2014']
<class 'list'>
Utilize a Função list() para Converter uma Coluna do DataFrame em uma Lista
Também podemos utilizar a função list() para converter uma coluna do DataFrame em uma lista. Note o que list() recebe: a coluna selecionada, que é uma Series — como em list(df["DOB"]) — e não o DataFrame em si. Iterar uma Series produz os seus valores por ordem, pelo que list() recolhe exatamente os valores da coluna.
Utilizaremos os mesmos dados acima para demonstrar esta abordagem.
import pandas as pd
data = {
"Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
"DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
"Salary": ["1000", "12000", "36000", "15000", "12000"],
}
df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])
print("Pandas DataFrame:\n\n", df, "\n")
list_of_single_column = list(df["DOB"])
print(
"the list of a single column from the dataframe\n",
list_of_single_column,
"\n",
type(list_of_single_column),
)
Saída:
Pandas DataFrame:
Name DOB Salary
0 James 1/1/2014 1000
1 Michelina 2/1/2014 12000
2 Marc 3/1/2014 36000
3 Bob 4/1/2014 15000
4 Halena 4/1/2014 12000
the list of a single column from the dataframe
['1/1/2014', '2/1/2014', '3/1/2014', '4/1/2014', '4/1/2014']
<class 'list'>
Utilize a Propriedade .values para Converter uma Coluna do DataFrame em uma Lista
Outra forma de conseguir isto é utilizando a propriedade .values.
Vamos percorrer os passos para converter a coluna ‘Salary’ deste DataFrame numa lista Python utilizando a propriedade .values.
A propriedade .values de uma Series do Pandas retorna uma representação dos dados como um array NumPy. Para convertê-la numa lista Python, pode utilizar o método .tolist(). Eis como o fazer:
salary_list = df["Salary"].values.tolist()
Aqui está o código completo:
import pandas as pd
data = {
"Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
"DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
"Salary": ["1000", "12000", "36000", "15000", "12000"],
}
df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])
# Convert the 'Salary' column to a list using .values
salary_list = df["Salary"].values.tolist()
print(salary_list)
Saída:
['1000', '12000', '36000', '15000', '12000']
Após executar este código, a coluna Salary do DataFrame será convertida numa lista Python, que é armazenada na variável salary_list.
Usando a Compreensão de Lista para Converter uma Coluna do DataFrame em uma Lista
A compreensão de lista também pode criar a lista iterando sobre a coluna selecionada. Por si só, copia os valores um a um, exatamente como list(); a forma de compreensão ganha o seu lugar quando também se pretende transformar ou filtrar cada valor à medida que a lista é construída.
# Using list comprehension to convert the 'Salary' column to a list
salary_list = [salary for salary in df["Salary"]]
Aqui está o código completo:
import pandas as pd
data = {
"Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
"DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
"Salary": ["1000", "12000", "36000", "15000", "12000"],
}
df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])
# Using list comprehension to convert the 'Salary' column to a list
salary_list = [salary for salary in df["Salary"]]
print(salary_list)
Saída:
['1000', '12000', '36000', '15000', '12000']
Conclusão
Neste artigo, explorámos quatro métodos diferentes para converter uma coluna de um DataFrame do Pandas numa lista Python: utilizando o método tolist(), a função list(), a propriedade .values e a compreensão de lista.
Para o caso comum — tem uma coluna e quer os seus valores como uma lista — converter a Series selecionada diretamente com tolist() ou list() é a escolha simples. A rota .values chega à mesma lista através de um array NumPy intermédio, e a compreensão de lista é a opção a que recorrer quando se pretende transformar ou filtrar os valores enquanto a lista está a ser construída.