HOWTO · Python
Convertir lista a Pandas DataFrame en Python
Este tutorial presenta cómo convertir una lista en un DataFrame de Pandas en Python
En esta página
Convierte una lista de Python en un DataFrame de Pandas con pd.DataFrame(my_list). Una lista unidimensional se convierte en una columna con el índice de filas entero predeterminado. Usa el argumento columns para asignar un nombre a esa columna, index para definir las etiquetas de fila o una lista de listas para crear varias columnas.
Convertir una lista en un DataFrame de Pandas en Python
Un DataFrame es una tabla bidimensional con filas y columnas etiquetadas. Importa Pandas, pasa la lista a su constructor DataFrame y asigna el resultado a una variable. En un script, llama a print(df) para mostrarlo; en un cuaderno o una sesión interactiva, evaluar df muestra la tabla.
En este ejemplo, cada nombre queda en la única columna, etiquetada como 0. De forma predeterminada, Pandas asigna a las filas etiquetas que empiezan por 0. pd.DataFrame() es el constructor que crea la tabla; no es un método que se invoque sobre la lista. Esta distinción es útil al adaptar la llamada: pasa los datos como primer argumento y luego usa argumentos con nombre, como columns o index, para definir la tabla.
import pandas as pd
my_list = ["Tom", "Mark", "Tony"]
df = pd.DataFrame(my_list)
print(df)
Guardar la lista en una columna de un DataFrame de Pandas en Python
Al crear el DataFrame, pasa una lista con una etiqueta al argumento columns. La etiqueta da nombre a la columna; no modifica el índice de las filas. La cantidad de etiquetas de columna debe coincidir con el número de columnas de los datos de entrada.
Aquí, los valores conservan su orden original y Names reemplaza la etiqueta de columna predeterminada 0.
import pandas as pd
my_list = ["Tom", "Mark", "Tony"]
df = pd.DataFrame(my_list, columns=["Names"])
print(df)
Convertir una lista en un DataFrame con índice en Python
Usa el argumento index para definir las etiquetas de fila y columns para las etiquetas de columna. Proporciona una etiqueta de índice por cada valor de la lista, de modo que cada fila tenga su etiqueta correspondiente. Estas etiquetas reemplazan el índice entero predeterminado; no se convierten en otra columna de datos. Por ejemplo, el primer valor se identifica con i., el segundo con ii. y el tercero con iii.. Elige etiquetas adecuadas para tus registros, como fechas o identificadores de productos.
import pandas as pd
my_list = ["Tom", "Mark", "Tony"]
df = pd.DataFrame(
my_list,
index=["i.", "ii.", "iii."],
columns=["Names"],
)
print(df)
Combinar dos listas en un DataFrame con zip() en Python
La función zip() empareja por posición los valores de los iterables de entrada. Pasa esos pares a pd.DataFrame() y proporciona una etiqueta de columna para cada lista de entrada. El ejemplo usa listas paralelas de nombres y estaturas, por lo que cada nombre permanece en la misma fila que su estatura. Puedes emparejar más de dos listas pasándolas todas a zip() y proporcionando las etiquetas de columna correspondientes.
zip() se detiene cuando se agota la entrada más corta. Si se espera que cada lista de origen aporte un valor a todas las filas, comprueba que tengan la misma longitud antes de crear el DataFrame.
import pandas as pd
name_list = ["Tom", "Mark", "Tony"]
height_list = [150, 151, 152]
rows = zip(name_list, height_list)
df = pd.DataFrame(rows, columns=["Name", "Height"])
print(df)
Convertir una lista multidimensional en un DataFrame de Pandas en Python
Para representar datos tabulares, coloca cada fila en una lista interna y pasa la lista externa a pd.DataFrame(). Asigna a columns una etiqueta por cada valor de una fila. En este ejemplo, cada lista interna contiene un nombre seguido de una edad, así que la tabla tiene dos columnas y tres filas.
Esta estructura es adecuada cuando todas las filas tienen los mismos campos en el mismo orden. Comprueba que los valores de cada fila correspondan a las etiquetas que proporcionas; si los registros tienen campos distintos, normaliza primero los datos para darles una estructura tabular uniforme.
import pandas as pd
info = [["Tom", 18], ["Mark", 25], ["Tony", 68]]
df = pd.DataFrame(info, columns=["Name", "Age"])
print(df)