Instalar pandas y tu primera tabla
Pandas no viene con Python. Cómo crear un entorno virtual, instalarlo con pip, verificarlo y construir tu primer DataFrame a mano.
¿Cómo quieres aprender?
El problema que vamos a resolver
Los ingresos de tres meses de una tienda están en un archivo CSV: doce mil filas. La pregunta es simple: ¿qué producto se vendió más?
Podrías hacerlo con el Python que ya conoces. Abrir el archivo, leer cada línea, separar por las comas, convertir a números, sumarlos uno a uno. Cuarenta líneas de código, con la posibilidad de equivocarse en cada paso.
En pandas son dos líneas. Porque pandas le da a Python algo que no tenía antes: una tabla. Toda una cuadrícula de filas y columnas se almacena como un único valor, y sumarla, filtrarla u ordenarla es solo una operación en cada caso.
Sin embargo, primero vale la pena tener algo claro. print, len e input vienen con Python. Pandas no. Hay que instalarlo por separado, y no entender con exactitud dónde se instala es lo que deja a muchos atascados el primer día con un error cuya causa es difícil de ver.
Al terminar este capítulo podrás
- Explicar qué diferencia la biblioteca propia de Python de un paquete externo
- Crear y activar un entorno virtual para un proyecto
- Instalar pandas con
pipy verificar la versión - Construir e imprimir tu primer
DataFramea mano - Leer un
ModuleNotFoundErrory saber con exactitud qué falló
Prerrequisitos: del curso de Python, la terminal, carpetas y tu primer proyecto y variables y tipos.
Pandas no es parte de Python
Lo que viene con Python se llama la biblioteca estándar: print, len, math y random viven allí. Pandas no. Es un paquete externo, escrito por otras personas y publicado en un repositorio llamado PyPI.
La herramienta que lo descarga es pip, que sí viene con Python.
Y eso plantea la primera pregunta, la que causa problemas más adelante si se pasa por alto: ¿instalado dónde?
Por qué un entorno virtual
Escribe pip install pandas y pandas se instalará en el Python global de toda tu máquina. Para un solo proyecto, eso funciona. Pero dentro de seis meses, cuando un segundo proyecto necesite una versión diferente de pandas, ambos competirán por el mismo lugar, y arreglar uno romperá el otro.
La solución es un espacio separado por proyecto: un entorno virtual. En realidad, no es más que una carpeta común y corriente dentro del proyecto que contiene los paquetes de ese proyecto. Si eliminas el proyecto, los paquetes se van con él, y el Python principal de la máquina se mantiene limpio.
En la terminal, ubicado en tu carpeta de proyectos:
cd D:\python-lab
mkdir pandas-lab
cd pandas-lab
python -m venv .venvAhora actívalo:
.venv\Scripts\activateUna vez activo, el nombre del espacio aparece al principio del prompt:
(.venv) PS D:\python-lab\pandas-lab>Ese(.venv)lo es todo. Si no puedes verlo, estás fuera del entorno ypip installcolocará el paquete en otro lugar. Cada terminal nueva necesitaactivateotra vez; esto no es algo que configuras una vez y olvidas.
Si PowerShell muestra un aviso de que la ejecución de scripts está deshabilitada, ejecuta esto una vez:
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedPara salir, escribe deactivate.
Instala y luego verifica
pip install pandasUnos segundos después terminará con Successfully installed .... Nota que NumPy se descargó junto con pandas: pandas usa NumPy por debajo, y pip resuelve esas dependencias por ti.
Ahora verifica. Crea un archivo llamado check.py:
import pandas as pd
print(pd.__version__)2.2.3Tu número puede ser diferente, lo cual está bien. Lo que importa es que se haya impreso un número de versión: significa que Python encontró pandas.
Dos notas sobre esa línea import pandas as pd. import pandas incorpora pandas; as pd le da un nombre corto. El nombre pd no es obligatorio, pero prácticamente todo el código de pandas en el mundo lo usa; por lo tanto, escribir cualquier otra cosa hace que tu código sea más difícil de leer para los demás. Adopta la convención.
Un ejemplo completo
first_frame.py:
import pandas as pd
# A DataFrame from a dictionary: each key is a column name,
# each list is that column's values, top to bottom.
sales = pd.DataFrame({
"product": ["pen", "notebook", "bag"],
"quantity": [12, 5, 2],
"price": [15.0, 60.0, 850.0],
})
print(sales)product quantity price
0 pen 12 15.0
1 notebook 5 60.0
2 bag 2 850.0Mira con atención lo que se imprimió, porque cada parte importa en los capítulos siguientes.
En la parte superior están los nombres de las columnas: product, quantity, price. A la izquierda están 0, 1, 2. Esos no son una columna; son el índice, los nombres de las filas. Tú no los escribiste en el diccionario; pandas los proporcionó, contando desde cero.
Y nota el 15.0 en la columna price. Escribiste 15.0, por lo que toda la columna se imprime con decimales, aunque 850.0 podría haber sido un número entero. Cada valor de una columna comparte un único tipo: una regla central en pandas y el tema principal del próximo capítulo.
Con la tabla en mano, hacerle preguntas es fácil:
import pandas as pd
sales = pd.DataFrame({
"product": ["pen", "notebook", "bag"],
"quantity": [12, 5, 2],
"price": [15.0, 60.0, 850.0],
})
print(sales.shape)
print(sales["quantity"].sum())(3, 3)
19shape informa qué tan grande es la tabla: tres filas, tres columnas, en ese orden. Y sales["quantity"].sum() suma cada valor de una columna. Con doce mil filas la línea sería exactamente la misma, y esa es la razón principal para aprender pandas.
Cuando algo falla
ModuleNotFoundError: No module named 'pandas' Python no pudo encontrar pandas. Casi siempre esto significa que el lugar donde se instaló y el lugar desde donde se ejecuta el programa no son el mismo. Revisa si en el prompt aparece (.venv); si no está, ejecuta activate y vuelve a ejecutarlo. Con el entorno activo, pip list mostrará si pandas realmente está allí.
'pip' is not recognized as an internal or external command pip no está en el PATH. En su lugar, escribe python -m pip install pandas; eso llama a pip a través del Python que se está ejecutando, por lo que funciona sin el PATH y no deja dudas sobre en qué Python se está instalando.
.venv\Scripts\activate : File cannot be loaded because running scripts is disabled Una política de seguridad de PowerShell. Ejecuta Set-ExecutionPolicy -Scope CurrentUser RemoteSigned una vez, y luego inténtalo de nuevo en una terminal nueva.
Todo funciona, pero el editor muestra subrayados en rojo Es probable que el editor esté apuntando a un Python diferente. En VS Code, Ctrl + Shift + P → Python: Select Interpreter → elige el que está en el .venv del proyecto. Si el programa se ejecuta en la terminal, el código está bien; la línea roja es solo una confusión del editor.
NameError al escribir DataFrame Tiene que ser pd.DataFrame, no DataFrame a secas. import pandas as pd importa toda la biblioteca bajo el nombre pd, por lo que se accede a todo lo que está dentro de ella a través de pd..
Paso 4 de 6 — Predice
Comprueba lo que has entendido
¿Qué imprime shape y en qué orden están los dos números?
import pandas as pd
sales = pd.DataFrame({
"product": ["pen", "notebook", "bag"],
"quantity": [12, 5, 2],
"price": [15.0, 60.0, 850.0],
})
print(sales.shape)- A(3, 4)
- B(3, 3)
- C3 rows, 3 columns
- D(3,)
¿Qué significa ver (.venv) al principio del prompt?
- APython se está ejecutando en un modo seguro especial
- BEstás dentro de la carpeta llamada `.venv`
- CEl entorno virtual está activo en esta terminal: `pip install` ahora instalará en el espacio de este proyecto
- DPandas ha terminado de instalarse
pip install pandas funcionó correctamente, pero al día siguiente una nueva terminal que ejecuta el mismo archivo reporta ModuleNotFoundError: No module named 'pandas'. ¿Cuál es la causa más probable?
- ALa instalación en realidad falló
- BLos paquetes instalados se borran cuando se apaga la máquina
- CEl archivo dice `import pandas` en lugar de `import pandas as pd`
- DLa nueva terminal nunca activó el entorno, por lo que se está ejecutando un Python diferente: uno que no tiene pandas
Para responder necesitas una cuenta
Inicia sesión para comprobar tus respuestas
Las preguntas están arriba, y resolverlas mentalmente es lo que de verdad importa. Inicia sesión para ver las respuestas, las explicaciones y las pistas de tres niveles.
Tu turno
Crea una carpeta nueva, crea tu propio entorno virtual dentro de ella e instala pandas, luego escribe un archivo llamado stock.py que contenga:
- Un
DataFramede al menos cuatro productos con tres columnas: una de texto, una de números enteros y una de decimales - Toda la tabla impresa
shapeimpreso, mostrando la cantidad de filas y columnas- La suma de ambas columnas numéricas impresa
Luego rómpelo a propósito: escribe deactivate en la terminal para salir del entorno y vuelve a ejecutar el archivo. ¿Qué error aparece y qué te está diciendo exactamente?
No te saltes ese último paso. Te encontrarás con ModuleNotFoundError muchas veces, y provocarlo deliberadamente hoy te permitirá reconocer su causa en un segundo la próxima vez.
Paso 6 de 6
Reto — el quiz del capítulo
Diez preguntas de fácil a difícil. Las últimas son difíciles a propósito.
Inicia sesión para hacer el quiz