Indice / Herramientas / 0.2
Positron: el IDE pensado para datos
VS Code esta hecho para escribir programas. Trabajar con datos es otra cosa: se escribe poco y se mira mucho. Positron es el mismo editor con los paneles que faltan para eso, y es el que te recomiendo para toda la parte de pandas.
Para que sirve
Fijate el bucle real de la leccion anterior: leer el archivo, mirar los tipos,
mirar los valores raros, contar cuantos hay, mirar de nuevo. De cinco pasos, cuatro
son mirar. Y en un editor de programas, mirar cuesta caro: hay que escribir
un print, elegir de antemano que se quiere ver, y leer el resultado
como texto plano en una terminal.
Un IDE de datos da vuelta la proporcion. La tabla esta siempre a la vista, las variables cargadas se listan solas y el resumen de una columna esta a un click. No es comodidad: es que ves cosas que no estabas buscando, que es justo donde se esconden los errores de datos. Al final de esta leccion vas a encontrar una nota imposible que nadie fue a buscar.
ELI5Explicado facil
Es la diferencia entre revisar una caja de fotos con los ojos cerrados, sacando una y pidiendo que te la describan, o desparramarlas todas sobre la mesa.
Con los ojos cerrados encontras lo que preguntas. Sobre la mesa ves ademas la foto que esta al reves, la que esta rota y la que no es de este album. Ninguna de esas tres se te hubiera ocurrido pedir.
Que es
Positron es el IDE de ciencia de datos de Posit - los mismos que hacen RStudio -, para Python y R. Esta construido sobre Code OSS, que es el nucleo abierto de Visual Studio Code.
Ese ultimo dato es el que importa para vos: la interfaz, los atajos, la paleta de comandos, la forma de abrir carpetas y el editor de texto son los mismos. No estas aprendiendo un programa nuevo, estas agregandole cuatro paneles al que ya sabes usar.
Los paneles, que son toda la diferencia
| Panel | Que da |
|---|---|
| Consola | Una sesion de Python viva. Se ejecuta linea a linea o por celdas, y el estado queda cargado entre corridas |
| Variables | Todo lo que hay en memoria, con su tipo y su forma. Un DataFrame se ve sin escribir print |
| Data Explorer | La vista de planilla: ordenar, filtrar y el resumen de cada columna. Aguanta millones de filas |
| Plots | Los graficos quedan en un panel con historial, en vez de abrirse en ventanas sueltas |
| Help | La documentacion de la funcion, adentro del IDE |
Desde la version 2026.03, ademas, la salida de una celda que devuelve un DataFrame de pandas (o de polars) se dibuja directamente como una grilla interactiva - se scrollea, se ordena, se seleccionan y copian celdas - con un boton Open in Data Explorer al lado.
Lo mismo, paso a paso
Seis pasos sobre el mismo archivo de la leccion 0.1. Prestale atencion al paso 3: es donde el panel contesta de una sola vez las tres preguntas que alla nos costaron cinco expresiones en la consola.
- ConsolaEl archivo se lee en la consola, como siempre. La diferencia empieza despues: notas aparece sola en el panel de Variables, con su forma, y al lado un icono para abrirla.
notas = pd.read_csv("estudiantes_notas.csv") - Click en el encabezado nota_3Un click en el encabezado ordena por esa columna. Como nota_3 es texto, el orden es alfabetico, y el guion suelto queda arriba de todo: las dos filas rotas suben solas sin que nadie las buscara.
notas.sort_values("nota_3") - Resumen de la columnaEl panel de resumen contesta de una sola vez las tres preguntas de la leccion anterior: de que tipo es la columna, cuantos ausentes tiene y cuantos valores distintos. Que diga texto donde esperabas numero es el diagnostico completo.
notas["nota_3"].describe() - FiltroLa barra de filtros deja escribir una condicion sin tocar el codigo. Filtrando por el guion quedan las dos filas culpables, con su legajo y su nombre. Es el mismo resultado que en la leccion 0.1, sin escribir una sola expresion.
notas[notas["nota_3"] == "-"] - Click en el encabezado nota_2Sacado el filtro, el mismo panel sobre una columna numerica muestra minimo, maximo, media y mediana. Y ahi salta otra cosa que nadie estaba buscando: la nota maxima es 99 en una escala de 0 a 10.
notas["nota_2"].describe() - Leer el resumenCompara la media con la mediana: 8.17 contra 5.45. Un solo valor imposible corrio el promedio del curso casi tres puntos para arriba. Ese hallazgo no costo ni una linea de codigo, y es exactamente el tipo de cosa que un print nunca te muestra, porque no se te ocurre pedirla.
notas["nota_2"].agg(["mean", "median"])
La nota maxima de nota_2 es 99 en una escala de 0 a 10, y la
media del curso quedo en 8.17 cuando la mediana es 5.45. Nadie estaba investigando
eso: aparecio solo, por mirar el resumen de una columna mientras se buscaba otra
cosa. Un print nunca te lo muestra, porque un print solo
contesta lo que preguntaste.
El panel no es magia: es codigo que no escribiste
Conviene saber que hay atras de cada panel, por dos razones: para no depender del IDE, y porque lo que se entrega es codigo, no una vista.
El panel de Variables
import pandas as pd
notas = pd.read_csv("estudiantes_notas.csv")
# Esto es exactamente lo que el panel muestra al lado del nombre de la variable.
print("forma:", notas.shape)
print()
print(notas.dtypes)
forma: (40, 5)
legajo str
estudiante str
nota_1 float64
nota_2 float64
nota_3 str
dtype: object
El resumen de una columna
import pandas as pd
notas = pd.read_csv("estudiantes_notas.csv")
# Sobre una columna de texto, describe cuenta y cuenta distintos.
print("nota_3 (texto):")
print(notas["nota_3"].describe().to_string())
# Sobre una numerica, da los extremos. Ahi salta lo imposible.
print()
print("nota_2 (numero):")
print(notas["nota_2"].describe().round(2).to_string())
print()
print("media :", round(notas["nota_2"].mean(), 2))
print("mediana:", round(notas["nota_2"].median(), 2))
print("Un solo 99 en una escala de 0 a 10 corre la media casi tres puntos.")
print("La mediana casi no se mueve: por eso conviene mirar las dos.")
nota_3 (texto):
count 37
unique 29
top 7.8
freq 3
nota_2 (numero):
count 40.00
mean 8.17
std 14.85
min 3.00
25% 4.65
50% 5.45
75% 7.43
max 99.00
media : 8.17
mediana: 5.45
Un solo 99 en una escala de 0 a 10 corre la media casi tres puntos.
La mediana casi no se mueve: por eso conviene mirar las dos.
Ordenar y filtrar
import pandas as pd
notas = pd.read_csv("estudiantes_notas.csv")
# Ordenar por una columna de texto es orden alfabetico: el guion queda primero.
print(notas.sort_values("nota_3")[["legajo", "nota_3"]].head(4).to_string(index=False))
print()
# Filtrar. El explorador hace esto mismo con un formulario, sin tocar el objeto.
print(notas[notas["nota_3"] == "-"][["legajo", "estudiante"]].to_string(index=False))
print()
print("Ojo: ni ordenar ni filtrar en el panel cambian el DataFrame.")
print("Son una lupa, no una edicion. Lo que se guarda es el codigo, no la vista.")
legajo nota_3
L2621 -
L2629 -
L2618 -1.0
L2633 3.2
legajo estudiante
L2621 Zacarías Juárez
L2629 Zacarías Gómez
Ojo: ni ordenar ni filtrar en el panel cambian el DataFrame.
Son una lupa, no una edicion. Lo que se guarda es el codigo, no la vista.
Ordenar o filtrar en el panel no modifica el DataFrame: cambia
como lo estas mirando. Si el filtro tiene que quedar, hay que escribirlo en el
codigo. Es la misma regla de siempre - lo que no esta en el archivo
.py no paso -, y es la primera confusion de todo el que viene
de Excel.
Lo que aprendiste en 0.1 se usa igual
Positron trae el Python Debugger (debugpy) como extension
precargada, que es la misma infraestructura de depuracion que VS
Code. El breakpoint se pone igual, clickeando la canaleta a la izquierda
del numero de linea hasta que aparece el punto rojo, y la depuracion se maneja con
los mismos controles.
Dicho de otra forma: la leccion anterior no se vence si te cambias. Es el mismo Python, el mismo depurador y otro tablero.
Dos cosas que hay que saber antes de instalarlo
Las extensiones no vienen del Marketplace de Microsoft
Microsoft no permite usar su Marketplace fuera de sus propias compilaciones de VS Code. Positron toma las extensiones del Posit Public Package Manager (P3M), que sirve el mismo catalogo que Open VSX.
La consecuencia concreta: las extensiones Python y Pylance oficiales de Microsoft no estan. No es un problema a resolver, es como funciona: Positron trae en su lugar un fork propio de la extension de Python, integrado con su consola y su panel de ayuda, mas pyrefly - un servidor de lenguaje que da resaltado, tipos y autocompletado - y el linter Ruff, los dos precargados.
La licencia
Positron se publica bajo la Elastic License 2.0, una licencia source-available: es gratis para uso personal, academico y comercial. La restriccion importante es una sola - no ofrecerlo como servicio alojado a terceros sin acuerdo con Posit - y hay una clausula especifica que permite a las instituciones educativas alojarlo para sus estudiantes con fines de aprendizaje. Algunas piezas, como el kernel y el formateador de R, van bajo MIT.
Para esta materia: se puede bajar, usar y recomendar sin ninguna letra chica.
Donde se rompe
Causa: no esta, y no va a estar: el catalogo es el de P3M / Open VSX, no el Marketplace de Microsoft.
Arreglo: ninguno, porque no falta nada. El soporte de Python ya viene puesto con el fork propio de Posit, pyrefly y Ruff.
Causa: el explorador cambia la vista, no el objeto. El
to_csv escribe el DataFrame, que nunca se ordeno.
Arreglo: lo que tenga que quedar va escrito:
notas = notas.sort_values("nota_3"). La vista sirve para decidir,
el codigo para que pase.
Causa: el explorador muestra objetos que existen en memoria, y correr el archivo entero con F5 abre un proceso aparte que termina y se lleva todo.
Arreglo: ejecuta el codigo en la consola - por celdas o seleccionando y mandando a ejecutar -, o parate en un breakpoint. El panel muestra lo que hay vivo en la sesion.
Causa: una consola con estado acumulado. Una variable que definiste hace media hora y despues borraste del archivo sigue en memoria, y el codigo parece andar cuando ya no anda.
Arreglo: antes de dar algo por terminado, reinicia la sesion y corre el archivo de arriba abajo. Es el precio de tener una consola viva, y lo paga cualquier entorno interactivo, cuadernos de Jupyter incluidos.
Aca hay que elegir
No hay que abandonar nada: se instalan al lado y los dos leen los mismos
archivos .py. La pregunta util no es cual es mejor sino que estas
haciendo hoy:
- Positron - cuando el trabajo es explorar: abrir un archivo que no conoces, buscar de que se enferman los datos, probar transformaciones de a una y mirar el resultado. Es toda la unidad 5 de esta materia.
- VS Code - cuando el trabajo es construir: un proyecto con varios modulos, tests, git, extensiones que solo estan en el Marketplace de Microsoft.
- Los dos - que es lo que hace mucha gente: explorar en Positron, y escribir el programa final donde ya tenes todo configurado.
Para esta materia la recomendacion es Positron, con una condicion: que sepas hacer a mano lo que el panel te muestra. Por eso los ejemplos de arriba estan escritos en codigo. Un IDE que te ahorra pensar es una trampa; uno que te ahorra tipear es una herramienta.
Recetario
| Cosa | Como es |
|---|---|
| Quien lo hace | Posit, los de RStudio |
| Lenguajes | Python y R, los dos de primera |
| Base | Code OSS: mismos atajos y mismo editor que VS Code |
| Licencia | Elastic License 2.0. Gratis para uso personal, academico y comercial |
| Extensiones | P3M / Open VSX. No hay Python ni Pylance de Microsoft |
| Python incluido | Fork propio de la extension, pyrefly y Ruff |
| Depuracion | debugpy precargado: igual que en la leccion 0.1 |
| Ver una tabla | Data Explorer: ordenar, filtrar, resumen por columna |
| Celda con un DataFrame | Grilla interactiva con boton Open in Data Explorer (desde 2026.03) |
| Lo que se entrega | Siempre el codigo. La vista del panel no se guarda |
Los datos de esta leccion se comprobaron contra la documentacion oficial: la presentacion, la licencia, las extensiones, la guia de Python y las notas de la version 2026.03. Es una herramienta que se mueve rapido: si algo de aca no coincide con lo que ves, la documentacion manda.