Data Source

plugins = [ "https://pyscript.net/latest/plugins/python/py_tutor.py" ] packages = ["pandas"]
import pandas as pd from pyodide.http import open_url import sys title = "Pandas (and basic DOM manipulation)" page_message = "This example loads a remote CSV file into a Pandas dataframe, displays it and lets you manipulate it through a Python REPL" url = "https://raw.githubusercontent.com/datasets/airport-codes/master/data/airport-codes.csv" Element("header-title").element.innerText = title Element("page-title").element.innerText = title Element("page-message").element.innerText = page_message Element("txt-url").element.value = url # Depending on the type of DOM element, there are several alternative methods to write to it # Element("id-of-dom-element").write("example") # Element("id-of-dom-element").innerText = "example" # Element("id-of-dom-element").value = "example" # Element("id-of-dom-element").element.innerText = "example" # Element("id-of-dom-element").element.value = "example" # js.document.getElementById("id-of-dom-element").innerText = "example" # js.document.getElementById("id-of-dom-element").value = "example" df = pd.DataFrame() def loadFromURL(*args, **kws): global df # clear dataframe & output df = pd.DataFrame() Element("pandas-output-inner").element.innerHTML = "" url = Element("txt-url").element.value log ("Trying to fetch CSV from " + url) df = pd.read_csv(open_url(url)) Element("pandas-repl").element.style.display = "block" Element("pandas-output").element.style.display = "block" Element("pandas-dev-console").element.style.display = "block" display (df, target="pandas-output-inner", append="False") def log(message): # log to pyscript dev console print (message) # log to JS console js.console.log (message)