onlinecompiler.io

Compilador Python online con pandas

Escribe código pandas abajo y ejecútalo gratis, en un sandbox en nuestros servidores. Pega un CSV en la pestaña Entrada y léelo con pd.read_csv. NumPy, Matplotlib, seaborn y scikit-learn también están instalados. Sin registro, sin anuncios.

Also in EnglishTambém em português

import sys
import pandas as pd

# Lee el CSV de la pestaña Entrada
df = pd.read_csv(sys.stdin)

print(df.groupby("ciudad")["ventas"].sum().sort_values(ascending=False))
print()
print(df["ventas"].describe().round(1))
ciudad,mes,ventas
Lima,ene,120
Lima,feb,135
Bogotá,ene,180
Bogotá,feb,160
Quito,ene,95
Quito,feb,110
Ciudad de México,ene,210
Ciudad de México,feb,190

Pulsa Ejecutar y el programa muestra las ventas por ciudad y luego un resumen de la columna de ventas:

Salida
ciudad
Ciudad de México    400
Bogotá              340
Lima                255
Quito               205
Name: ventas, dtype: int64

count      8.0
mean     150.0
std       41.3
min       95.0
25%      117.5
50%      147.5
75%      182.5
max      210.0
Name: ventas, dtype: float64

Qué ejecuta tu código pandas

Python 3.14 con pandas 3.0.6. Estos paquetes ya vienen instalados, sin configurar nada: numpy 2.5.4, pandas 3.0.6, scipy 1.18.1, scikit-learn 1.9.1, matplotlib 3.11.2, seaborn 0.13.2, statsmodels 0.15.0, sympy 1.14.0, openpyxl 3.1.5, pillow 13.0.0, duckdb 1.5.6, wordcloud 1.9.6, polars 2.1.0, pgmpy 1.1.2, nltk 3.10.4. Las versiones también están en la tabla de paquetes (en inglés). Otros paquetes de PyPI no están instalados, y no hay red para instalarlos.

Usa tus datos o un conjunto ya instalado

Pega un CSV en la pestaña Entrada, hasta 100 KB, y léelo con pd.read_csv(sys.stdin), como hace el programa de arriba. Algunos conjuntos de datos ya están instalados y cargan sin internet: los 22 conjuntos de ejemplo de seaborn, con sns.load_dataset, los de scikit-learn (load_iris, load_digits, load_wine, load_breast_cancer, load_diabetes) y los que vienen con statsmodels.

datos.py
import seaborn as sns
from sklearn.datasets import load_iris

propinas = sns.load_dataset("tips")        # uno de los 22 conjuntos de ejemplo de seaborn
iris = load_iris(as_frame=True).frame      # conjuntos que vienen con scikit-learn
print(propinas.shape, iris.shape)

Con la API puedes enviar hasta 20 archivos en una ejecución, 1 MB en total, y leer cada uno por su nombre (mira el ejemplo de abajo).

pandas 2 y pandas 3

pandas 3 cambió algunos valores por defecto: las columnas de texto reciben un nuevo dtype de cadena, y el copy-on-write queda siempre activo, así que el código que modifica una parte de un DataFrame puede comportarse distinto. Para código o ejercicios escritos para pandas 2, la API tiene un segundo entorno, python-3.14-pandas2, con pandas 2.3.3 y los mismos otros paquetes. El editor de esta página ejecuta pandas 3.0.6.

Comprueba una respuesta automáticamente

El compilador online con casos de prueba ejecuta tu código con varias entradas y marca cada una como aprobada o fallida. Para una respuesta en tabla, imprime el DataFrame como CSV y elige "Tabla CSV, filas en cualquier orden": compara las columnas por su nombre, ignora el orden de las filas y la columna de índice de pandas, y compara números con una pequeña tolerancia:

respuesta.py
totales = df.groupby("ciudad", as_index=False)["ventas"].sum()
print(totales.to_csv(index=False))

Límites

  • Cada ejecución tiene 30 segundos, 512 MB de memoria (hasta 2 GB por la API en los planes Pro y Business) y 2 CPUs, y empieza de cero: nada se guarda entre ejecuciones.
  • No hay red, así que pd.read_csv de una URL, pip install y los cargadores fetch_* de scikit-learn fallan.
  • La salida por encima de 64 KB por flujo se corta, así que imprime un resumen en vez de un DataFrame grande entero.

Ejecuta pandas desde tu app

Envía el código y los archivos de datos a la API con una clave, y la salida vuelve en la respuesta. Es gratis hasta 100,000 ejecuciones al mes.

Terminal
curl -X POST https://api.onlinecompiler.io/api/run-code-sync/ \
  -H "Authorization: TU_CLAVE_DE_API" \
  -H "Content-Type: application/json" \
  -d '{
    "compiler": "python-3.14",
    "code": "import pandas as pd\n\ndf = pd.read_csv(\"datos.csv\")\nprint(df.groupby(\"ciudad\")[\"ventas\"].sum().to_dict())",
    "files": [
      {"name": "datos.csv", "content": "ciudad,ventas\nLima,120\nLima,135\nBogotá,180\n"}
    ]
  }'

El output de la respuesta es "{'Bogotá': 180, 'Lima': 255}\n". Las gráficas que muestra el programa vuelven en files; la documentación de la API explica ambos.

Más para trabajar con datos

Preguntas frecuentes

¿Este compilador Python con pandas es gratis?

Sí. Ejecutar pandas en esta página no pide cuenta y no muestra anuncios. Para ejecutar pandas desde tu propia app o sitio, la API y el editor incrustable son gratis hasta 100,000 ejecuciones al mes, uso comercial incluido.

¿Qué versión de pandas ejecuta?

pandas 3.0.6 sobre Python 3.14, con numpy 2.5.4, pandas 3.0.6, scipy 1.18.1, scikit-learn 1.9.1, matplotlib 3.11.2, seaborn 0.13.2, statsmodels 0.15.0, sympy 1.14.0, openpyxl 3.1.5, pillow 13.0.0, duckdb 1.5.6, wordcloud 1.9.6, polars 2.1.0, pgmpy 1.1.2, nltk 3.10.4. Para código escrito para pandas 2, la API tiene el id python-3.14-pandas2, que ejecuta pandas 2.3.3.

¿Puedo usar mi propio archivo CSV?

Sí. Pega el CSV en la pestaña Entrada (hasta 100 KB) y léelo con pd.read_csv(sys.stdin). Con la API puedes enviar hasta 20 archivos, 1 MB en total, y leer cada uno por su nombre, como pd.read_csv("datos.csv").

¿Por qué falla read_csv con una URL?

Los programas se ejecutan sin acceso a la red, así que pd.read_csv("https://...") se detiene con URLError: Temporary failure in name resolution. Pega los datos en la pestaña Entrada, envíalos como archivo con la API o usa un conjunto de datos ya instalado, como sns.load_dataset("tips").

¿Puedo ejecutar código de pandas 2?

Sí, con la API: envía el id python-3.14-pandas2 y el código se ejecuta en pandas 2.3.3 con los mismos otros paquetes. El editor de esta página ejecuta pandas 3.0.6.

¿Puedo graficar un DataFrame?

Sí. Matplotlib y seaborn están instalados: llama a df.plot() y luego a plt.show(), y la gráfica aparece como imagen debajo de la salida.