Pandas, une bibliothèque pour manipuler facilement des données

Posté par  . Édité par karteum59, _PhiX_, Benoît Sibaud, Jiehong, Nÿco, olivierweb, palm123, Benoît et mornik. Modéré par tuiu pol. Licence CC By‑SA.
Étiquettes :
38
19
jan.
2014
Python

À l'occasion de la sortie de la version 0.13, je vous présente cette bibliothèque basée sur Python qui permet de travailler simplement et efficacement avec des données structurées. Jusqu'à présent, les versions se sont enchaînées rapidement mais celle-ci arrive plusieurs mois après la précédente. On peut donc espérer qu'un code développé pour cette nouvelle version demandera moins de maintenance.

Logo pandas

Les principales possibilités sont :

  • récupérer des données depuis des fichiers CSV, tableaux Excel, des pages web, HDF5, etc. ;
  • grouper, découper, alléger, déplacer, écrire les données ;
  • ces données peuvent être à une ou deux dimensions, avec des manques, ou encore temporelles avec ou sans périodicité.

Pour peu que les données soient correctement formatées, pandas peut s'en sortir même dans le cas où la quantité dépasse les capacités de votre machine en traitant les sources morceaux par morceaux.

Le développement de cette bibliothèque s'inscrit dans la problématique de disposer d'outils pour manipuler de gros volumes de données dans le but de leur exploitation scientifique ou commerciale.

Note : pandas fonctionne avec la même base de code sur Python 2 et 3 mais ce n'est, peut-être, pas le cas de toutes les dépendances.

Journal SeqTools et retour d'expérience sur le traitement de jeux de données en python

Posté par  . Licence CC By‑SA.
38
29
oct.
2018

SeqTools est une librairie que j'ai créée pour transformer des jeux de données trop gros pour tenir en mémoire. Elle remplit un rôle comparable à itertools de la librairie standard, mais fait aussi en sorte de donner accès aux éléments par indexation, ce qui est plus pratique.

Dépôt du code
Documentation

L'objectif principal consiste à prendre une ou plusieurs sources de données et de les combiner ou de modifier leurs éléments pour obtenir une version transformée.
Par exemple, partant d'une (…)

HackInScience : automatiser l'enseignement de Python

Posté par  . Édité par Pierre Jarillon, Xavier Teyssier, palm123, Ysabeau 🧶 et patrick_g. Modéré par Pierre Jarillon. Licence CC By‑SA.
38
15
jan.
2021
Éducation

HackInScience est un logiciel de publication et de correction automatique d'exercices, son instance hackinscience.org est une collection d'exercices Python.

HackInScience est né en 2014 : j'enseignais alors le Python en université (promos d'environ 70 élèves), et avec les collègues on s'est dit qu'il serait bon de passer plus de temps à aider les élèves qu'a les corriger, que la correction c'était automatisable, mais que passer du temps avec eux, ça ne l'était pas.

Deux "on jette tout et on recommence" plus tard, et deux confinements plus tard, on en est là :

Tout le code est open-source, c'est un simple Django pour présenter les exercices, des websockets pour recevoir sans attendre la correction du bot, et un Celery pour "load-balancer" les rendus aux serveurs de correction. Je n'enseigne plus en université mais le site étant toujours en ligne, et les confinements aidant, il a trouvé son public : 1500 exercices sont réussis par semaine en ce moment.

J’essaye de passer deux semaines par an à plein temps sur le projet, en 2019 j’ai travaillé l’internationalisation (être traducteur de la doc de Python et ne pas traduire ses propres projets n’était pas bien sérieux…), et en 2020 la notion de classement et d’équipes.

Python — partie 9 ― formateur de code, analyse statique

37
9
juin
2021
Python

Cette dépêche est la suite d’une série sur Python initiée en septembre 2019. Après un sommeil cryogénique d’un an et demi, on repart en forme avec d’autres contenus Python à vous proposer : actualité, bonnes pratiques, astuces, témoignages… Elle a été rédigée principalement à deux voix, Oliver et Philippe, qui vous font part de leur expérience sur les fonctions.

Cette dixième partie présente les formateurs de code bien pratiques et les analyseurs de code. 🐍 🐍 🐍

Le logo de Python est entouré de petites icônes symbolisant la variété des domaines où s’applique Python, et, à droite, un joyeux barbu se tient derrière un écran d’ordinateur qui affiche « partie = 10, "Formateurs" \n print(partie) »

Pour rappel, les autres dépêches déjà publiées :

Créer une application web avec Jupyter, ipywidgets et voilà

Posté par  . Édité par ZeroHeure, Ysabeau 🧶, Davy Defaud et Arkem. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
37
4
oct.
2019
Python

Vous connaissez sans doute Jupyter, cet outil de développement tournant dans un navigateur qui est particulièrement en vogue chez les scientifiques et plus généralement dans les domaines liés au traitement des données. Aujourdʼhui je vais te parler d’une possibilité offerte par Jupyter qu’il ne me semble pas, sauf erreur de ma part, avoir vu évoquée ici, à savoir le développement dʼapplications web.

Journal Pythran à Scipy2013 !

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
37
4
juin
2013

Ô joie, le compilo Pythran dont les évolutions sont suivies par une foule Linuxienne en délire, a droit de citer lors de la grand messe annuelle du Python scientifique, Scipy2013, plus exactement .

Un grand merci à vous tous qui répondez, critiquez, hurlez, piaillez dans les différents journaux pythranesques, ça m'aide beaucoup pour la motivation, et aussi pour améliorer les choses.

Comme le défi Pythran, c'est d'avoir de la perf en gardant la syntaxe Python, et vu que (…)

Journal Génération de code (Python) avec Grako

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
37
3
juil.
2016

Depuis quelques jours, je découvre une lib Python, grako. Et je dois dire, elle est assez magique !

Besoin initial, trouver la lib!

Le besoin initial s'est présenté au boulot : on doit écrire un DSL pour interroger un ensemble de systèmes fournissant chacun de la donnée à leurs manières.

La première chose faite, c'est d'écrire la grammaire eBNF de ce DSL. Histoire de prévoir comment on va parser le bazar.

La seconde chose faite, et c'est devenu un réflexe (…)

Journal L/D·es différents paradigmes de programmation en Python

Posté par  (Mastodon) . Licence CC By‑SA.
Étiquettes :
37
7
nov.
2019

Utilisateur de Python tendance Data Sciences pas doué ni réellement formé en programmation, j’ai toujours eu une sorte de complexe par rapport au fait que ce que j’écris en Python sont juste des scripts basiques qui n’utilisent pratiquement pas le caractère orienté objet de Python. Caractère qui me semblait être une des composantes fondamentales de l’identité de Python. Il semblerait qu’il n’est en fait pas non pythonic d’écrire selon d’autre paradigme de programmation que celui orienté objet. C’est même une (…)

Journal le dessous des cartes

Posté par  . Licence CC By‑SA.
37
14
août
2015

Cher journal,

J'aime bien lire sur ce site les histoires de création de carte comme celle-ci ou celle-là, alors je vais te conter la mienne.

quelle est la question ?

Partant d'une question pertinente : "Est-il facile de se ravitailler en GPL en France", j'en suis venu à une question idiote : "Est ce qu'il y a une grande différence des prix du carburant en fonction d'où on habite".

J'imagine une carte de France des points de vente, catégorisés en (…)

Journal CPython abandonne Mercurial et passe à Git et Github

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
37
2
jan.
2016

Les développeurs de Python ont décidé d'abandonner leur infrastructure actuelle, basée sur divers outils open-source écrits en Python et auto-hébergés, pour passer aux services propriétaires proposés par Github. Cela implique de passer le code source de Mercurial à Git.

La raison fondamentale, détaillée dans le PEP 481, est la nécessité de faciliter le travail des contributeurs du projet, l'arrivée de nouveaux contributeurs, et les contributions occasionnelles (correction de typos, amélioration de doc).

L'infrastructure actuelle utilise un outillage spécifique, comme (…)

Journal vim: Au revoir syntastic, bonjour ALE

Posté par  . Licence CC By‑SA.
Étiquettes :
37
24
août
2018

J'utilise Vim pour éditer des fichiers et notamment pour coder. Et j'aime bien avoir l'intégration des linters dans mon éditeur pour afficher les erreurs à côté du texte.

Un linter, c'est un programme qui analyse le code et signale les infractions aux règles de codages, les potentiels problèmes, erreurs de syntaxes, variables non utilisées, etc. En Python, par exemple, j'utilise pylint et flake8.

Pour intégrer ces linters à un éditeur de texte, il existe des plugins.

Depuis longtemps je (…)

minipy, un serveur Python dans son Android

Posté par  . Édité par palm123, BAud, Davy Defaud, Benoît Sibaud, Cyprien et gUI. Modéré par Davy Defaud. Licence CC By‑SA.
Étiquettes :
37
11
juil.
2019
Android

Minipy est une application Android dont les sources sont distribuées sous licence MIT. Cette application permet d’exécuter des petites commandes Python depuis son smartphone ou sa tablette Android. En elle‐même, cette application ne fait pas grand’chose et il faut bien reconnaître que son utilité est très limitée.

Toutefois, son intérêt n’est pas dans le pourquoi, mais plutôt dans le comment. Cette dépêche va donc expliquer comment cette application fonctionne et va détailler les différentes étapes nécessaires à la création de cette application jusqu’à son empaquetage plutôt non conventionnel.

Dans une seconde partie, cette dépêche va s’intéresser à l’architecture de Minipy qui permet de faire tourner « en local » un serveur Python Tornado qui dialogue avec une page HTML (rendue par un WebView) via des WebSockets.

minipy

Journal Idle Do, un script pour faire tourner des commandes quand l'ordinateur est inactif

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
37
3
jan.
2021

Pour éviter de perdre mes photos en cas d'incendie ou de vol, j'ai décidé de les sauvegarder sur AWS Deep Glacier. C'est très bon marché (20 centimes par mois pour ~150 Go) et sans doute assez écologique puisque les fichiers sont stockés hors ligne (il faut plusieurs jours pour les restaurer)

C'est super, mais nous sommes en 2021 et mon bled n'est toujours pas couvert par la fibre. Ce qui veut dire que j'ai 80Ko/s en upload les bons jours (…)

Kivy : un cadriciel graphique unique en Python

Posté par  (site web personnel, Mastodon) . Édité par vmagnin, BAud, orfenor, Julien Jorge, tisaac, palm123 et dovik. Modéré par Pierre Jarillon. Licence CC By‑SA.
Étiquettes :
36
6
mai
2025
Python

Kivy est un cadriciel (framework) graphique, permettant de développer des interfaces tactiles (ou utilisable à la souris) sur toutes les plateformes, y compris mobiles. Il s'accompagne d'une suite de logiciels très pratiques que nous allons présenter ici.

logo Kivy

Journal Créer une application web avec Jupyter, ipywidgets et voilà

Posté par  . Licence CC By‑SA.
36
4
oct.
2019
Ce journal a été promu en dépêche : Créer une application web avec Jupyter, ipywidgets et voilà.

Cher journal,
tu connais sans doute Jupyter, cet outil de développement tournant dans un navigateur qui est particulièrement en vogue chez les scientifiques et plus généralement dans les domaines liés au traitement des données. Aujourd'hui je vais te parler d'une possibilité offerte par Jupyter qu'il ne me semble pas, sauf erreur de ma part, avoir vu évoquée ici, à savoir le développement d'applications web.

À propos de Jupyter

A titre personnel, et peut-être comme beaucoup des plus anciens (disons (…)