HOWTO · Pandas
Convertir la columna de Pandas Dataframe a una lista
Este artículo introduce cómo convertir la columna de Pandas DataFrame en una lista.
En esta página
Cuando se trabaja con Pandas DataFrames en Python, es posible que a menudo necesite convertir una columna de su DataFrame en una lista de Python. Este proceso puede ser crucial para diversas tareas de manipulación y análisis de datos. Afortunadamente, Pandas proporciona varios métodos para lograrlo, lo que facilita la extracción de los datos que necesita en forma de lista.
En este artículo, exploraremos diferentes métodos para convertir una columna de un Pandas DataFrame en una lista de Python. Demostraremos estos métodos utilizando un DataFrame de ejemplo que contiene información sobre nombres, fechas de nacimiento (DOB) y salarios.
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"])
Exploraremos cuatro métodos diferentes para realizar esta conversión: utilizando el método tolist(), la función list(), la propiedad .values y la comprensión de listas.
Utilice el método tolist() para convertir una columna del DataFrame en una lista
Una columna en el DataFrame de Pandas es una Series de Pandas. Entonces, si necesitamos convertir una columna en una lista, podemos usar el método tolist() de la Series. tolist() convierte la Serie del DataFrame de pandas en una lista.
En el código siguiente, df['DOB'] devuelve la Series, o la columna, con el nombre DOB del DataFrame.
El método tolist() convierte la Series en una 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),
)
Salida:
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'>
Utilice la función list() para convertir una columna del DataFrame en una lista
También podemos utilizar la función list() para convertir una columna de un DataFrame en una lista. Observe lo que recibe list(): la columna seleccionada, que es una Series — como en list(df["DOB"]) — y no el DataFrame en sí. Al iterar una Series se obtienen sus valores en orden, por lo que list() recoge exactamente los valores de la columna.
Utilizaremos los mismos datos que arriba para demostrar este enfoque.
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),
)
Salida:
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'>
Utilice la propiedad .values para convertir una columna del DataFrame en una lista
Otra forma de lograrlo es utilizando la propiedad .values.
Veamos los pasos para convertir la columna ‘Salary’ de este DataFrame en una lista de Python utilizando la propiedad .values.
La propiedad .values de una Series de Pandas devuelve una representación de los datos como un array de NumPy. Para convertirla en una lista de Python, puede utilizar el método .tolist(). Así es como se hace:
salary_list = df["Salary"].values.tolist()
Este es el 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)
Salida:
['1000', '12000', '36000', '15000', '12000']
Después de ejecutar este código, la columna Salary del DataFrame se convertirá en una lista de Python, que se almacena en la variable salary_list.
Usar comprensión de listas para convertir una columna de un DataFrame en una lista
La comprensión de listas también puede crear la lista iterando sobre la columna seleccionada. Por sí sola copia los valores uno a uno, exactamente igual que list(); la forma de comprensión se gana su lugar cuando además se desea transformar o filtrar cada valor a medida que se construye la lista.
# Using list comprehension to convert the 'Salary' column to a list
salary_list = [salary for salary in df["Salary"]]
Este es el 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)
Salida:
['1000', '12000', '36000', '15000', '12000']
Conclusión
En este artículo, exploramos cuatro métodos diferentes para convertir una columna de un DataFrame de Pandas en una lista de Python: utilizando el método tolist(), la función list(), la propiedad .values y la comprensión de listas.
Para el caso común — tiene una columna y quiere sus valores como una lista — convertir la Series seleccionada directamente con tolist() o list() es la opción sencilla. La ruta de .values llega a la misma lista a través de un array de NumPy intermedio, y la comprensión de listas es la opción a la que recurrir cuando se desea transformar o filtrar los valores mientras se construye la lista.