Free tool

Free Online Python Compiler — Run Python Instantly

Practice Python fundamentals, data structures and Pandas analysis right here — no installs, no environment setup, nothing to configure.

Powered by real Python (CPython via WebAssembly)

Ready for interview prep? Solve our Python interview questions for data analysts →

Run Python with NumPy and Pandas online

This online Python compiler runs real Python, including NumPy and Pandas, inside your browser tab using WebAssembly. There is nothing to install and no environment to set up, so you can practice Python for data analysis straight away.

Write some code, press Run, and see the output. No account is needed.

What you can practice

  • Python basics: variables, loops and f-strings
  • Functions and data structures: lists, dictionaries and sets
  • List comprehensions and collections.Counter
  • Pandas DataFrames, groupby, merge and missing values
  • NumPy arrays and statistics
  • Dates and rolling calculations

What's included

  • CPython 3.13.2 through Pyodide 0.28.3 and WebAssembly.
  • Python's standard library, including modules such as collections.
  • NumPy and Pandas, downloaded when your code imports them.
  • No editor control for installing additional packages.
  • Code execution and console output stay inside your browser tab.

Example code to try

Basics

Use variables, f-strings and a loop to summarize a list of scores.

name = "Skillancy"
scores = [72, 85, 90, 64]
average = sum(scores) / len(scores)
print(f"{name} average score: {average:.1f}")
for s in scores:
    print(s, "pass" if s >= 70 else "fail")
Open in editor

List comprehension and counting

Transform a list with a comprehension and count repeated words with collections.Counter.

from collections import Counter

words = "data analytics needs clean data and clear questions".split()
lengths = [len(w) for w in words]
print(lengths)
print(Counter(words).most_common(2))
Open in editor

Functions

Write a function that removes duplicates while preserving the original order.

def dedupe(items):
    seen = set()
    result = []
    for item in items:
        if item not in seen:
            seen.add(item)
            result.append(item)
    return result

print(dedupe([3, 1, 3, 2, 1, 4]))
Open in editor

Pandas groupby

Build a DataFrame and summarize sales by city with groupby and aggregation.

import pandas as pd

df = pd.DataFrame({
    "city": ["Pune", "Delhi", "Pune", "Chennai", "Delhi"],
    "sales": [120, 90, 150, 60, 110],
})
print(df.groupby("city")["sales"].agg(["sum", "mean"]))
Open in editor

Pandas merge

Join two DataFrames with the Pandas equivalent of a SQL LEFT JOIN.

import pandas as pd

orders = pd.DataFrame({"order_id": [1, 2, 3], "customer_id": [10, 11, 10], "amount": [250, 400, 150]})
customers = pd.DataFrame({"customer_id": [10, 11, 12], "name": ["Asha", "Ravi", "Meera"]})
merged = orders.merge(customers, on="customer_id", how="left")
print(merged)
Open in editor

Missing values

Find missing values and fill numeric and text columns with appropriate replacements.

import numpy as np
import pandas as pd

df = pd.DataFrame({
    "age": [25, np.nan, 31, np.nan, 40],
    "city": ["Pune", "Delhi", None, "Delhi", "Pune"],
})
print(df.isna().sum())
df["age"] = df["age"].fillna(df["age"].median())
df["city"] = df["city"].fillna("Unknown")
print(df)
Open in editor

NumPy statistics

Use vectorized calculations to find summary statistics, filter values and calculate z-scores.

import numpy as np

data = np.array([12, 15, 11, 18, 20, 14])
print("mean:", data.mean(), "std:", round(data.std(), 2))
print("above mean:", data[data > data.mean()])
z = (data - data.mean()) / data.std()
print(np.round(z, 2))
Open in editor

Dates and rolling averages

Create a daily time series and smooth a metric with a three-day rolling average.

import pandas as pd

days = pd.date_range("2026-01-01", periods=10, freq="D")
df = pd.DataFrame({
    "date": days,
    "visits": [120, 135, 128, 150, 160, 155, 170, 165, 180, 175],
})
df["rolling_3d"] = df["visits"].rolling(3).mean().round(1)
print(df)
Open in editor

Frequently asked questions

What is the Skillancy Python compiler?

A free, browser-based Python environment. You write Python, run it and see the output, with NumPy and Pandas available for data analysis.

Is it real Python?

Yes. It runs CPython 3.13.2 compiled to WebAssembly through Pyodide 0.28.3 inside your browser tab.

Can I use NumPy and Pandas?

Yes. You can import NumPy and Pandas. The compiler downloads either package on demand when your code imports it.

Do I need to sign up or install anything?

No. Open the page and start running code. No account and no installation are needed.

Is my code sent to a server?

No. Your code runs inside your browser tab. Analytics records only whether a Python tool run succeeds or fails, never your code or output.

Can I install extra packages?

The current editor supports Python's standard library plus NumPy and Pandas. It does not provide a control for installing additional packages.

Why is the first run slower?

The Python runtime and any imported data packages are downloaded into your browser when first needed. Later runs in the same session are faster.

How is this different from running Python on my computer?

It runs in the browser and cannot directly access files on your computer. Very heavy computations or large datasets may be slower or exceed browser memory, so it is best suited to learning, practice and quick experiments.

Can I use this to prepare for Python interviews?

Yes. Start with the examples on this page, then solve the Pandas, NumPy and statistics problems on our Python Interview Questions page, which includes a live editor.

Keep practicing

Want to go deeper?

Take Python from basics to production: machine learning, forecasting and LLM applications — taught live by working data professionals.