Public
Edited
Feb 19, 2024
Insert cell
Insert cell
Select a data source…
Type SQL, then Shift-Enter. Ctrl-space for more options.

Insert cell
url = "https://corsproxy.io/?https://dvf-simple-api.lab.sspcloud.fr/predict?month=4&nombre_lots=1&code_type_local=2&nombre_pieces_principales=2&surface=75"
Insert cell
html`${printBadges({fpath: "content/getting-started/05_rappels_types.qmd"})}`
Insert cell
function reminderBadges({
sourceFile = "content/01_toto.Rmd",
type = ['md', 'html'],
split = null,
onyxiaOnly = false,
sspCloudService = "python",
GPU = false,
correction = false
} = {}) {
if (Array.isArray(type)) {
type = type[0];
}

let notebook = sourceFile.replace(/(.Rmd|.qmd)/, ".ipynb");
if (correction) {
notebook = notebook.replace(/content/, "corrections");
} else {
notebook = notebook.replace(/content/, "notebooks");
}

const githubRepoNotebooksSimplified = "github/linogaliana/python-datascientist-notebooks";
const githubAlias = githubRepoNotebooksSimplified.replace("github", "github.com");
const githubRepoNotebooks = `https://${githubAlias}`;

let githubLink, nbviewerLink;

if (notebook === "") {
githubLink = githubRepoNotebooks;
nbviewerLink = `https://nbviewer.jupyter.org/${githubRepoNotebooksSimplified}/tree/main`;
} else {
githubLink = `${githubRepoNotebooks}/blob/main`;
nbviewerLink = `https://nbviewer.jupyter.org/${githubRepoNotebooksSimplified}/blob/main/${notebook}`;
}

const notebookRelPath = `/${notebook}`;
const [section, chapter] = notebook.split("/").slice(-2);

let downloadLink;
if (type === "md") {
downloadLink = `[![Download](https://img.shields.io/badge/Download-Notebook-important?logo=Jupyter)](https://downgit.github.io/#/home?url=${githubLink}${notebookRelPath})`;
} else {
downloadLink = `<a href="https://downgit.github.io/#/home?url=${githubLink}${notebookRelPath}" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/Download-Notebook-important?logo=Jupyter" alt="Download"></a>`;
}

githubLink = `<a href="${githubLink}${notebookRelPath}" class="github"><i class="fab fa-github"></i></a>`;

let visualizeLink;
if (type === "md") {
visualizeLink = `[![nbviewer](https://img.shields.io/badge/Visualize-nbviewer-blue?logo=Jupyter)](${nbviewerLink})`;
} else {
visualizeLink = `<a href="${nbviewerLink}" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/Visualize-nbviewer-blue?logo=Jupyter" alt="nbviewer"></a>`;
}

const sectionLatest = section.split("/").slice(-1)[0];
const chapterNoExtension = chapter.replace(".ipynb", "");
const onyxiaInitArgs = [sectionLatest, chapterNoExtension];

if (correction) {
onyxiaInitArgs.push("correction");
}

const gpuSuffix = GPU ? "-gpu" : "";

const sspcloudJupyterLinkLauncher = `https://datalab.sspcloud.fr/launcher/ide/jupyter-${sspCloudService}${gpuSuffix}?autoLaunch=true&onyxia.friendlyName=%C2%AB${chapterNoExtension}%C2%BB&init.personalInit=%C2%ABhttps%3A%2F%2Fraw.githubusercontent.com%2Flinogaliana%2Fpython-datascientist%2Fmaster%2Fsspcloud%2Finit-jupyter.sh%C2%BB&init.personalInitArgs=%C2%AB${onyxiaInitArgs.join('%20')}%C2%BB&security.allowlist.enabled=false`;

let sspcloudJupyterLink;
if (type === "md") {
sspcloudJupyterLink = `[![Onyxia](https://img.shields.io/badge/SSP%20Cloud-Tester_avec_Jupyter-orange?logo=Jupyter&logoColor=orange)](${sspcloudJupyterLinkLauncher})`;
} else {
sspcloudJupyterLink = `<a href="${sspcloudJupyterLinkLauncher}" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/SSP%20Cloud-Tester_avec_Jupyter-orange?logo=Jupyter&logoColor=orange" alt="Onyxia"></a>`;
}

if (split === 4) {
sspcloudJupyterLink += '<br>';
}

const sspcloudVscodeLinkLauncher = `https://datalab.sspcloud.fr/launcher/ide/vscode-${sspCloudService}${gpuSuffix}?autoLaunch=true&onyxia.friendlyName=%C2%AB${chapterNoExtension}%C2%BB&init.personalInit=%C2%ABhttps%3A%2F%2Fraw.githubusercontent.com%2Flinogaliana%2Fpython-datascientist%2Fmaster%2Fsspcloud%2Finit-vscode.sh%C2%BB&init.personalInitArgs=%C2%AB${onyxiaInitArgs.join('%20')}%C2%BB&security.allowlist.enabled=false`;

let sspcloudVscodeLink;
if (type === "md") {
sspcloudVscodeLink = `[![Onyxia](https://img.shields.io/badge/SSP%20Cloud-Tester_avec_VSCode-blue?logo=visualstudiocode&logoColor=blue)](${sspcloudVscodeLinkLauncher})`;
} else {
sspcloudVscodeLink = `<a href="${sspcloudVscodeLinkLauncher}" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/SSP%20Cloud-Tester_avec_VSCode-blue?logo=visualstudiocode&logoColor=blue" alt="Onyxia"></a>`;
}

if (split === 5) {
sspcloudVscodeLink += '<br>';
}

let colabLink;
if (type === "md") {
colabLink = `[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](http://colab.research.google.com/${githubRepoNotebooksSimplified}/blob/main${notebookRelPath})`;
} else {
colabLink = `<a href="https://colab.research.google.com/${githubRepoNotebooksSimplified}/blob/main${notebookRelPath}" target="_blank" rel="noopener"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"></a>`;
}

if (split === 7) {
colabLink += '<br>';
}

let vscodeLink;
if (type === "md") {
vscodeLink = `[![githubdev](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual Studio Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://github.dev/linogaliana/python-datascientist-notebooks${notebookRelPath})`;
} else {
vscodeLink = `<a href="https://github.dev/linogaliana/python-datascientist-notebooks${notebookRelPath}" target="_blank" rel="noopener"><img src="https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc" alt="githubdev"></a></p>`;
}

const badges = [
githubLink, downloadLink,
visualizeLink, sspcloudJupyterLink,
sspcloudVscodeLink
];

if (!onyxiaOnly) {
badges.push(colabLink, vscodeLink);
}

let result = badges.join("\n");

if (type === "html") {
result = `<p class="badges">${result}</p>`;
}

if (onyxiaOnly) {
result = `${sspcloudJupyterLink}${sspcloudVscodeLink}`;
}

return result;
}
Insert cell
function printBadges({
fpath,
onyxiaOnly = false,
split = 5,
type = "html",
sspCloudService = "python",
GPU = false,
correction = false
} = {}) {
const badges = reminderBadges({
sourceFile: fpath,
type: type,
split: split,
onyxiaOnly: onyxiaOnly,
sspCloudService: sspCloudService,
GPU: GPU,
correction: correction
});

return badges
}

// Example usage:
// printBadges({ fpath: "content/getting-started/05_rappels_types.qmd", onyxiaOnly: false, split: 5, type: "html", sspCloudService: "python", GPU: false, correction: false });

Insert cell
Inputs.table(df)
Insert cell
db = {
const configuredClient = await DuckDBClient.of() ;
await configuredClient.query(
`CREATE VIEW franceRP AS
SELECT CANTVILLE, AGED, SEXE, IPONDI, FROM read_parquet('https://static.data.gouv.fr/resources/recensement-de-la-population-fichiers-detail-individus-localises-au-canton-ou-ville-2020-1/20231023-122841/fd-indcvi-2020.parquet')`)
return configuredClient
}
Insert cell
df_full = db.query(`SELECT * FROM franceRP`)
Insert cell
df = db.query(`SELECT * FROM franceRP LIMIT 5`)
Insert cell
Plot.rectY(df_full, Plot.binX({y: "sum"}, {x: "AGED", y: d => d.SEXE == 1 ? d.IPONDI : -d.IPONDI, fill: "SEXE", tip: true})).plot({y: {label: "Frequency"}})
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more