4Geeks chosen to deliver AI education in the Bahamas alongside Harvard, Oxford, and Columbia.See more

Cómo crear un DataFrame en Pandas paso a paso

By 4Geeks

Crea un DataFrame desde un diccionario, una lista o un archivo, elige la forma adecuada para tus datos y evita los errores más comunes.

7 min readLast updated
Icono de crear un DataFrame en pandas

¿Cómo crear un DataFrame en pandas?

Respuesta corta: importa pandas con import pandas as pd y pasa tus datos a pd.DataFrame(). La forma más habitual es un diccionario de listas: cada clave es el nombre de una columna y cada lista, sus valores.

python
import pandas as pd
 
datos = {
    "nombre": ["Ana", "Luis", "Marta"],
    "edad": [28, 34, 25],
    "ciudad": ["Madrid", "Lima", "Bogotá"],
}
 
df = pd.DataFrame(datos)
print(df)
  nombre  edad  ciudad
0    Ana    28  Madrid
1   Luis    34    Lima
2  Marta    25  Bogotá

pandas crea un índice numérico (0, 1, 2) y deduce el tipo de cada columna. También puedes crear un DataFrame a partir de una lista de listas, una lista de diccionarios, un array de NumPy o un archivo CSV, como verás más abajo.

Un DataFrame es una tabla: filas con un índice y columnas con nombre.

Sintaxis de pd.DataFrame()

python
pd.DataFrame(data=None, index=None, columns=None, dtype=None, copy=None)
ParámetroQué hace
dataLos datos: un diccionario, una lista de listas, una lista de diccionarios, un array de NumPy, una Serie u otro DataFrame
indexLas etiquetas de las filas. Si no lo pasas, pandas usa 0, 1, 2...
columnsLos nombres de las columnas. Es obligatorio en la práctica cuando data es una lista de listas
dtypeFuerza un tipo para todas las columnas, por ejemplo "float64" o str
copyCopia los datos de entrada en lugar de compartirlos

Formas de crear un DataFrame en pandas

Desde un diccionario de listas

Es la forma del ejemplo de arriba. Cada clave es una columna, y todas las listas deben tener la misma longitud.

Desde una lista de listas

Cada lista interna es una fila. Pasa los nombres de las columnas con columns:

python
filas = [["Ana", 28], ["Luis", 34], ["Marta", 25]]
 
df = pd.DataFrame(filas, columns=["nombre", "edad"])
print(df)
  nombre  edad
0    Ana    28
1   Luis    34
2  Marta    25

Desde una lista de diccionarios

Cada diccionario es una fila. Es el formato en que llegan muchos datos de una API en JSON. Si a una fila le falta una clave, pandas rellena el hueco con NaN:

python
productos = [
    {"producto": "Café", "precio": 2.5},
    {"producto": "Té", "precio": 2.0, "stock": 40},
]
 
print(pd.DataFrame(productos))
  producto  precio  stock
0     Café     2.5    NaN
1       Té     2.0   40.0

Desde una lista simple

Una lista de valores crea una sola columna:

python
redes = ["Facebook", "Instagram", "YouTube"]
 
print(pd.DataFrame(redes, columns=["red"]))
         red
0   Facebook
1  Instagram
2    YouTube

Con un índice propio

python
ventas = pd.DataFrame({"ventas": [120, 90, 150]}, index=["ene", "feb", "mar"])
print(ventas)
     ventas
ene     120
feb      90
mar     150

Con un índice con nombre puedes leer una fila con ventas.loc["feb"].

Desde dos o más listas sueltas

Si tienes una lista por columna, júntalas en un diccionario:

python
nombres = ["Ana", "Luis"]
edades = [28, 34]
 
df = pd.DataFrame({"nombre": nombres, "edad": edades})

pd.DataFrame(list(zip(nombres, edades)), columns=["nombre", "edad"]) da el mismo resultado.

Desde un array de NumPy

python
import numpy as np
 
print(pd.DataFrame(np.arange(6).reshape(2, 3), columns=["a", "b", "c"]))
   a  b  c
0  0  1  2
1  3  4  5

Desde un diccionario anidado

Con un diccionario de diccionarios, las claves externas pasan a ser columnas. Si quieres que sean filas, usa from_dict() con orient="index":

python
notas = {"Ana": {"mates": 8, "historia": 9}, "Luis": {"mates": 6, "historia": 7}}
 
print(pd.DataFrame.from_dict(notas, orient="index"))
      mates  historia
Ana       8         9
Luis      6         7

Un DataFrame vacío

python
vacio = pd.DataFrame()
con_columnas = pd.DataFrame(columns=["nombre", "edad"])
 
print(vacio.empty, len(con_columnas))  # True 0

Si vas a ir añadiendo filas en un bucle, es más rápido guardarlas en una lista de diccionarios y crear el DataFrame al final con pd.DataFrame(lista).

Desde un archivo CSV o Excel

En proyectos reales, la mayoría de los DataFrames salen de un archivo:

python
df = pd.read_csv("ventas.csv")
df = pd.read_excel("ventas.xlsx")  # necesita openpyxl
Carrera · Ingeniería de IA

Ya sabes crear tablas con pandas, ahora construye con IA

De cero a AI Engineer junior: Python, datos, agentes de IA y RAG con mentores y proyectos reales.

Comprueba el DataFrame que acabas de crear

python
df = pd.DataFrame(datos)
 
print(df.shape)   # (3, 3): filas y columnas
print(df.head(2)) # las primeras filas
print(df.dtypes)  # el tipo de cada columna
df.info()         # resumen: filas, columnas, tipos y nulos
nombre      str
edad      int64
ciudad      str
dtype: object

En pandas 3 las columnas de texto tienen el tipo str. En pandas 2 aparecían como object.

¿Qué estructura de datos usar para crear tu DataFrame?

TienesUsaEjemplo
Una lista por columnaDiccionario de listaspd.DataFrame({"a": [1, 2], "b": [3, 4]})
Una lista por filaLista de listas y columnspd.DataFrame([[1, 3], [2, 4]], columns=["a", "b"])
Registros en JSON de una APILista de diccionariospd.DataFrame([{"a": 1, "b": 3}])
Una matriz numéricaArray de NumPypd.DataFrame(np.zeros((2, 2)))
Un archivoread_csv(), read_excel(), read_json()pd.read_csv("datos.csv")

Una vez creado, puedes añadir columnas al DataFrame, eliminar las que sobran o unirlo con otra tabla con merge().

Crea DataFrames con IA

Un asistente como ChatGPT, Claude o GitHub Copilot convierte tus datos en un DataFrame en segundos si le enseñas cómo llegan. Estos tres prompts están listos para copiar.

1. Convierte tus datos en un DataFrame

Tengo estos datos en Python: [pega tu lista, diccionario o JSON].
Escribe el código para convertirlos en un DataFrame de pandas con las columnas [nombres de columnas]
y explícame qué forma de pd.DataFrame() usas y por qué.

2. Crea datos de prueba

Crea un DataFrame de pandas con 10 filas de datos de ejemplo realistas de [ventas / clientes / estudiantes],
con las columnas [columnas y tipos]. Usa solo pandas y la librería estándar.

3. Arregla un error al crear el DataFrame

Al crear un DataFrame me sale este error: [pega el error]
Este es mi código: [pega tu código]
Explícame la causa y dame la corrección.

Comprueba siempre el resultado con df.shape, df.head() y df.dtypes antes de seguir trabajando con los datos.

Aprende con un mentor

De crear DataFrames a aplicaciones con IA

En la carrera de Ingeniería de IA de 4Geeks empiezas sin experiencia y terminas con agentes de IA y sistemas RAG en tu portafolio.

Errores comunes al crear un DataFrame

Lo que vesPor qué pasaSolución
ValueError: All arrays must be of the same lengthLas listas del diccionario tienen longitudes distintasRevisa len() de cada lista o crea el DataFrame desde una lista de diccionarios
ValueError: If using all scalar values, you must pass an indexEl diccionario tiene valores sueltos, como {"a": 1, "b": 2}, en lugar de listasMete el diccionario en una lista: pd.DataFrame([{"a": 1, "b": 2}])
ValueError: 1 columns passed, passed data had 2 columnscolumns tiene menos nombres que valores tiene cada filaPasa un nombre por cada columna
NameError: name 'pd' is not definedFalta import pandas as pdAñade la importación al principio del archivo
ModuleNotFoundError: No module named 'pandas'pandas no está instalado en tu entornoInstálalo con pip install pandas
Columnas con NaN que no esperabasEn una lista de diccionarios, a algunas filas les falta una claveRevisa las claves o rellena con df.fillna()
Los números salen como textoLos valores venían entre comillas, como "28"Conviértelos con df["edad"] = df["edad"].astype(int)

Guías relacionadas

Descarga gratis

Crear un DataFrame en una chuleta de 2 páginas

Todas las formas de crear un DataFrame con pandas, los parámetros, cómo comprobar el resultado, errores comunes y prompts para ChatGPT, Claude o Copilot. Gratis, en PDF.

Chuleta: crear un DataFrame en pandas

2 páginas · PDF · 4Geeks

  • Recetas para crear un DataFrame desde cualquier dato
  • Qué forma usar según cómo llegan tus datos
  • Errores comunes y prompts para resolverlos con IA

Consíguela gratis

Tu PDF al instante

Preguntas frecuentes sobre crear un DataFrame en pandas

¿Quieres pasar de crear tablas con pandas a construir aplicaciones con IA, con proyectos reales y mentores?

Ver la carrera de Ingeniería de IA